Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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中成为一列_R - Fatal编程技术网

错误检查:如何将多个列提取到数据帧中,并使它们在R中成为一列

错误检查:如何将多个列提取到数据帧中,并使它们在R中成为一列,r,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[dat

我有三列要放入一个数据框,也要将其放入一列。我已经用一个唯一的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。看起来您试图做的是数据。安装
重塑2
软件包并尝试:

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

(您可以使用
install.packages(“restrape2”)
安装
restrape2
)。

能否显示输入数据的示例(理想情况下,显示dput的结果(头部(癌症))给出可再现的结果?癌症和癌症之间有什么区别?从您的输出来看,癌症数据是一个空数据框。您希望的输出是什么(使用这些术语而不是上面的
1值,2值
示例)?请将其编辑到问题中(单击
编辑
链接),而不是在评论中发布。@DavidRobinson“cancer”是原始数据框,“cancerdata”是我要创建的新数据框。