【发布时间】:2022-01-25 16:10:44
【问题描述】:
我有一个大约 100 列的数据框。我想获取某些列的位置,以便以后选择它们。这些列的名称通常相同,只是后缀不同,表示年份。
abcd_2011 <- c(1,2,3,4)
xy_2011 <- c(5,6,7,8)
rew_2011 <- c(2,4,6,8)
abcd_2015 <- c(4,7,9,1)
xy_2015 <- c(5,9,1,2)
rew_2015 <- c(4,4,8,7)
df <- data.frame(abcd_2011, xy_2011, rew_2011, abcd_2015, xy_2015, rew_2015)
我设法静态地做到了。
k.keep <- grep(c(\"^abcd_.*2011|xy_.*2011|^rew_\"), colnames(df))
但是,我希望*2011 是动态的,因此如果我想再选择一年,我只需更改一次。正如您在上面看到的,仅使用 grep 并查找年份是行不通的,因为我需要所有年份的某些列(rew)..
类似于以下内容(当然不起作用)。
k.keep <- grep(c(\"^abcd_.*k.year|xy_.*k.year|^rew_\"), colnames(df))
任何帮助表示赞赏。