如何重新安排我的数据呢?

时间:2018-02-23 22:44:39

标签: 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)) . 

他们有一个命名模式,如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。 有没有人有任何建议来实现这种格式?

1 个答案:

答案 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