R 使用列名初始化数据帧中的子矩阵

R 使用列名初始化数据帧中的子矩阵,r,R,我有一个数据帧(100 x 25),我想填充子块[,19:25]。 有没有直接的方法,用列名代替“19:25”? (无需搜索/匹配列名等…)您可能需要 library(dplyr) select(df, a1:c3) # a1 b1 c1 a2 b2 c2 a3 b3 c3 #1 6 19 13 19 2 14 7 5 10 #2 5 6 8 4 12 2 5 15 8 #3 15 16 14 1 15 12 8 13 6 #4 11 17 14 11 3 13

我有一个数据帧(100 x 25),我想填充子块[,19:25]。 有没有直接的方法,用列名代替“19:25”? (无需搜索/匹配列名等…)

您可能需要

library(dplyr)
select(df, a1:c3)
#  a1 b1 c1 a2 b2 c2 a3 b3 c3
#1  6 19 13 19  2 14  7  5 10
#2  5  6  8  4 12  2  5 15  8
#3 15 16 14  1 15 12  8 13  6
#4 11 17 14 11  3 13  3 14  5
#5 14  6  7  3  5  1 19 20  1
数据
set.seed(24)

df
[,19:25]
有什么问题?如果列位于前面提到的位置,这是直接的。我不知道如何不搜索它们就可以根据列名进行子集。您可能有列名“col1”、“col2”、“col3”…?@akrun:seash[,19:25]完全没有问题,但是我有很多列,我可以更容易地按名称“记住”,所以执行“a1”:“c33”而不是搜索名称、获取索引等,这是一对代码行。好吧,对于你们这些更聪明的人来说,也许更少@RomanLuštrik:确切的列名看起来像'a1','b1','c1','a2','b2','c2','a3',…,'c24',但也许这不能在R中完成,所以您可能已经回答了我的问题。谢谢:)@DusanKojic我用
dplyr
发布了一个解决方案。也许这会有帮助。哇,“dplyr”听起来很刺激。我要试试看!Thnx!!
set.seed(24)
df <- as.data.frame(matrix(sample(1:20, 30*5, replace=TRUE), ncol=30))
colnames(df) <-  paste0(rep(letters[1:3],10), rep(1:10,each=3))