r - 如何从数据框中提取一些按字母顺序排列的列?

标签 r

我有一个数据框,其中列按字母顺序排列(COL_A、COL_B、COL_C 等)。如何在不显式写出列名或不计算有多少列的情况下,将列 H 子集化到 M?

为澄清而编辑:我并不是说这些列正好是 COL_A、COL_B 等等,只是它们按字母顺序排列,具有名称字符串中的任何通用结构。例如,它们可以是阿拉巴马州、阿肯色州、德克萨斯州、怀俄明州和赞比亚。简而言之,我试图找到 df_subset = df[,n1:n2] 的替代方法,我可以直接输入列名,而不必计算出列号 n1 和 n2。

最佳答案

更通用的方法是使用 >=<=应用于列名的运算符。下面是一个使用数据框的示例,其中列名是美国各州:

> df <- data.frame(as.list(state.abb))
> colnames(df) <- state.name
> df[, 1:3]
  Alabama Alaska Arizona
1      AL     AK      AZ
> df[colnames(df) >= "Florida" & colnames(df) <= "Illinois"]
  Florida Georgia Hawaii Idaho Illinois
1      FL      GA     HI    ID       IL

另一种方法是使用 match 找到两个边界的索引并在这两者之间建立一个序列:

> df[seq(from = match("Florida", colnames(df)),
+        to   = match("Illinois", colnames(df)))]
  Florida Georgia Hawaii Idaho Illinois
1      FL      GA     HI    ID       IL

关于r - 如何从数据框中提取一些按字母顺序排列的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564731/

相关文章:

r - 在 R 中绘制给定转移矩阵的马尔可夫链

r - Pandoc在书目后插入附录

javascript - R/Shiny 中的可拖动折线图

python - 如何从 R 中读取换行符分隔的 JSON 文件?

具有覆盖元素的 R rep 函数

performance - R 中的执行效率与程序员效率

r - 从列表创建省略号 (...)

r - 将列表 append 到 R 中的数据框

r - 在 Shiny 的应用程序中保留 rhandsontable 的行顺序

R:如何从 "HH:MM:SS.CC"这样的字符串中获取秒数