R 拆垛时setDT(dat)中出错
我正在尝试将我的数据从每人多行取消堆叠到一行。我的代码可以很好地处理模拟数据,但当我将其应用于实际数据时,它会给出一个错误,我无法解释它的含义 这是我的数据:R 拆垛时setDT(dat)中出错,r,data.table,R,Data.table,我正在尝试将我的数据从每人多行取消堆叠到一行。我的代码可以很好地处理模拟数据,但当我将其应用于实际数据时,它会给出一个错误,我无法解释它的含义 这是我的数据: mbr_id assigned completed score 1: 54 2016-11-10 2016-11-10 0 2: 54 2016-11-21 2016-11-21 7 3: 54 2017-01-26 2017-01-26 11 4: 54 2017-02-
mbr_id assigned completed score
1: 54 2016-11-10 2016-11-10 0
2: 54 2016-11-21 2016-11-21 7
3: 54 2017-01-26 2017-01-26 11
4: 54 2017-02-23 2017-02-23 12
5: 54 2016-11-21 2016-11-21 1
> summary(testdata)
mbr_id assigned completed
Min. :54 Min. :2016-11-10 Min. :2016-11-10
1st Qu.:54 1st Qu.:2016-11-21 1st Qu.:2016-11-21
Median :54 Median :2016-11-21 Median :2016-11-21
Mean :54 Mean :2016-12-20 Mean :2016-12-20
3rd Qu.:54 3rd Qu.:2017-01-26 3rd Qu.:2017-01-26
Max. :54 Max. :2017-02-23 Max. :2017-02-23
score
Min. : 0.0
1st Qu.: 1.0
Median : 7.0
Mean : 6.2
3rd Qu.:11.0
Max. :12.0
这是我正在运行的代码:
library(data.table)
dcast(setDT(testdata), ID~rowid(mbr_id), value.var= c("assigned","completed","score"), sep="")`
这是我得到的错误:
Error in setDT(dat) :
All elements in argument 'x' to 'setDT' must be of same length
不完全确定你想做什么。。。但如果你有一个测试的ID,你可以这样做
mbr_id <- c(54,54,54,54,54)
assigned <- c('2016-11-10','2016-11-21','2017-01-26','2017-02-23','2016-11-21')
completed <- c('2016-11-10','2016-11-21','2017-01-26','2017-02-23','2016-11-21')
score <- c(0,7,11,12,1)
testid <- c(1,2,3,4,5)
testdata <- data.frame(mbr_id, assigned, completed, score, testid)
dcast(testdata, mbr_id ~ testid , value.var = "score", sep="")
我假设您有多个mbr\u id,并且都有不同的分配。因此,您可以通过这种方式使用“重塑”
mbr_id <- c(54,54,54,54,54,42,42)
assigned <- c('2016-11-10','2016-11-21','2017-01-26','2017-02-23','2016-11-21','2017-02-23','2016-11-21')
completed <- c('2016-11-10','2016-11-21','2017-01-26','2017-02-23','2016-11-21','2017-02-23','2016-11-22')
score <- c(0,7,11,12,1,20,30)
testid <- c(1,2,3,4,5,4,5)
testdata <- data.frame(mbr_id, assigned, completed, score, testid)
# dcast(testdata, mbr_id ~ testid , value.var = "score", sep="")
wanted_result <- reshape(testdata, direction = "wide", idvar="mbr_id", timevar="testid")
请提供一个可复制的示例,而不是与给出错误testdata vs dat的数据集不同的数据集的摘要统计信息。您忘记了=after value.var&没有ID变量我添加了=它在粘贴过程中丢失,但在我的原始代码中存在。我得到的错误被准确地粘贴了。虽然错误在setDTdat中表示error,但这是我在运行上述代码时遇到的错误,并且我没有名为dat的数据集。另一个谜。