我有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)) .
他们有一个命名模式,如T1_W1_base.CSV,T1_W10_base.CSV等。以下是我的数据样本
feature.name value
w1.1 3ddim 100
w1.2 2ddim 80
w1.3 mean 5
w10.1 3ddim 90
w10.2 2ddim 70
w10.3 mean 3
我想像这样安排我的数据
Feature.name 3ddim 2ddim mean
w1 100 80 5
w10 90 70 3
实际上我的功能是850。 有没有人有任何建议来实现这种格式?
答案 0 :(得分:1)
目前在您的示例数据中,我可以看到“rownames”中存在重复值,而R
不允许这样做。但是当我回溯你的帖子后,我发现你在真实数据中有不同的rownames,所以这不是问题。
假设 - 考虑到这一事实,我相应地修改了以下样本数据(通过引用您之前发布的图像样本数据)。
library(dplyr)
library(tidyr)
library(tibble)
df %>%
rownames_to_column("rowname_col") %>%
mutate(rowname_col = gsub("(\\S+)[.].*", "\\1", rowname_col)) %>%
spread(feature_name, value) %>%
rename(feature_name = rowname_col)
输出是:
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