Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 拆垛时setDT(dat)中出错_R_Data.table - Fatal编程技术网

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的数据集。另一个谜。