错误检查:如何将许多列提取到数据框中并将它们放入R中的一列中

时间:2014-03-23 14:58:47

标签: r

我有三列要放入数据框,并将其放入一列。我已使用唯一ID对每列进行了签名。我想要的结果是两列,一列是列ID,一列是这三列值。这些是我的原始数据:

所以我希望结果如下:

1 value
2 value
3 value
1 value
2 value
3 value

所以我做的是:

for (i in 1:nrow(cancer)) 
+   for (j in 1:ncol(cancer)){  
+        
+     dtypeID=datatype$dtypeID[datatype$dtype %in% names(cancer)[j]]
+     if (nrow(cancerdata)==0){
+       cancerdata = data.frame(dataID=1,
+                         dtypeID=dtypeID,
+                         value=cancer[i,j]) 
+     } else {
+       
+       lastdataID = max(cancerdata$dataID)
+       dataID=lastdataID+1
+       newline = data.frame(dataID=dataID, 
+                            dtypeID=dtypeID,
+                            value=cancer[i,j])
+       
+       cancerdata=rbind(cancerdata, newline)  
+     } 
+   }

但它一直让我犯这个错误: data.frame出错(dataID = 1,dtypeID = dtypeID,value = cancer [i,j]):   参数意味着不同的行数:1,0

1 个答案:

答案 0 :(得分:1)

看起来你要做的是melt数据。安装reshape2包并尝试:

library(reshape2)
cancerdata = melt(cancer, id=c("Gene.symbol", "Pathway.title"))

(您可以使用reshape2安装install.packages("reshape2")