Я пытаюсь вычислить медианное значение по нескольким столбцам, однако мои данные немного напуганы. Это выглядит следующим образом.вычислить медианы из столбцов data.table в R
library(data.table)
dt <- data.table("ID" = c(1,2,3,4),"none" = c(0,5,5,3),
"ten" = c(3,2,5,4),"twenty" = c(0,2,3,1))
ID none ten twenty
1: 1 0 3 0
2: 2 5 2 2
3: 3 5 5 3
4: 4 3 4 1
В таблице в столбец указано количество вхождений этого значения. Я хочу рассчитать медианное происхождение.
Например, для ID = 1
median(c(10, 10, 10))
является расчет я хотел создать.
для ID = 2
median(c(0, 0, 0, 0, 0, 10, 10, 20, 20))
Я попытался с помощью rep()
и lapply()
с очень ограниченным успехом, и я после некоторых четких указаний о том, как это может быть достигнуто. Я понимаю, например, для rep()
Мне пришлось бы жестко кодировать мое значение, которое нужно повторить (например, rep(0,2)
или rep(10,2)
), и это то, что я ожидаю. Я просто пытаюсь создать список или вектор с повторениями из каждого столбца.
Код для создания 'dt' в вашем примере не соответствует описанию проблемы. Это только опечатка, но смутила меня изначально, потому что все ответы отличаются от ожидаемого результата. Для ID = 2 числа для '' none ''и' "двадцать" 'меняются. С вашим кодом вы получите для ID = 2 'median (0,0,0,0,0,10,10,20,20)'. – Uwe
@Uwe Хорошо, хорошо поймать. Я попытался исправить это, так что отображаемый материал соответствует примеру ввода. Я сомневаюсь, что OP будет исправлять ошибки, если есть проблемы; они всегда могут отбросить их назад, если мы ошибаемся. – Frank