R 我怎样才能像这样重新排列我的数据?
我有22个Excel文件(850*2)。我用这样的代码加载到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
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