Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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,我有22个Excel文件(850*2)。我用这样的代码加载到R中 setwd ("D: /baseline") file_2day=list. files (pattern = "*. csv") d_2day<-do.call("rbind", sapply(file_2day, read.csv, simplify = FALSE)) . 我想这样安排我的数据 Feature.name 3ddim 2ddim mean w1 1

我有22个Excel文件(850*2)。我用这样的代码加载到R中

setwd ("D: /baseline")
 file_2day=list. files (pattern = "*. csv")
  d_2day<-do.call("rbind", sapply(file_2day, read.csv, simplify = FALSE)) . 
我想这样安排我的数据

Feature.name     3ddim   2ddim    mean 
w1               100       80       5
w10              90        70       3
实际上我的特征是850。
有人对实现这种格式有什么建议吗?

目前在您的示例数据中,我可以看到“rownames”中有重复的值,
R
不允许这样做。但当我回溯你的帖子时,我发现你在真实数据中有不同的行名,所以这不会成为问题

假设-考虑到这一事实,我相应地修改了下面的样本数据(通过引用您先前以图像形式发布的样本数据)

库(dplyr)
图书馆(tidyr)
图书馆(tibble)
df%>%
行名到列(“行名列”)%>%
突变(rowname\u col=gsub(“(\\S+[.].*”,“\\1”,rowname\u col))%>%
排列(特征名称、值)%>%
重命名(要素名称=行名称\u列)
输出为:

  feature_name 2ddim 3ddim mean
1           w1    80   100    5
2          w10    70    90    3
样本数据:

df <- structure(list(feature_name = c("3ddim", "2ddim", "mean", "3ddim", 
"2ddim", "mean"), value = c(100L, 80L, 5L, 90L, 70L, 3L)), .Names = c("feature_name", 
"value"), class = "data.frame", row.names = c("w1.1", "w1.2", 
"w1.3", "w10.10", "w10.20", "w10.30"))

       feature_name value
w1.1          3ddim   100
w1.2          2ddim    80
w1.3           mean     5
w10.10        3ddim    90
w10.20        2ddim    70
w10.30         mean     3

df请求帮助时,您应该包括一个简单的示例输入和所需输出,用于测试和验证可能的解决方案。(数据的图片不是特别有用)。这种类型的操作称为“从长到宽的重塑”。如果你做一点搜索的话,像这样的问题已经有很多答案了。通过发布这样的示例数据,你希望我们能输入大约600个笔画来帮助你。请提供示例数据:<代码> dPUTE()/代码>,并考虑上面@ MRFLIK的注释。您的第一列的名称是什么?还是rownames?谢谢你的回答。很高兴这有帮助!您好,如果您能解释这部分代码mutate(rowname\u col=gsub(“(\\S+[.].*”,“\\1”,rowname\u col))%%,我真的很感激您。谢谢
mutate
用于创建一个新列,以便它将一个新列
rowname\u col
添加到
df
dataframe。现在,
gsub
用于模式匹配和替换(有关更多信息,请参阅
?gsub
)。
gsub
中的第一个参数是“regex模式”,第二个参数是“替换”,第三个参数是要对其执行替换的“字符串”(要了解有关regex的更多信息,请阅读)。在这里,我使用了
gsub
的第二部分。
df <- structure(list(feature_name = c("3ddim", "2ddim", "mean", "3ddim", 
"2ddim", "mean"), value = c(100L, 80L, 5L, 90L, 70L, 3L)), .Names = c("feature_name", 
"value"), class = "data.frame", row.names = c("w1.1", "w1.2", 
"w1.3", "w10.10", "w10.20", "w10.30"))

       feature_name value
w1.1          3ddim   100
w1.2          2ddim    80
w1.3           mean     5
w10.10        3ddim    90
w10.20        2ddim    70
w10.30         mean     3