【发布时间】:2015-10-08 18:50:26
【问题描述】:
我想根据第一行中的某个值制作列的子集。举个例子:
df <- data.frame( region = c("A", sample(1:5,3)),
region = c("B", sample(1:5,3)),
region = c("C", sample(1:5,3)),
region = c("A", sample(1:5,3)) )
> df
region region.1 region.2 region.3
1 A B C A
2 5 5 3 3
3 2 1 5 4
4 4 2 1 5
我想对第一行中显示A 的所有列进行子集化。我不能使用索引号来执行此操作,因为我的数据集中有 3000 多个列,并且列名的名称也很重要,这就是为什么我使用第一行作为第二个标题的原因。此示例的结果应返回:
region region.3
1 A A
2 5 3
3 2 4
4 4 5
我怎样才能避免同名(region.1、region.2...)的 colnames 中的自动计数?感谢您的想法。
【问题讨论】:
-
df[unlist(df[1, ]) == "A"]可能是您想要的,但这是设置包含混合字符和数字的数据的不好方法。 -
感谢您的注意,但我只需要此行用于这个开始的子集。在下一步中,我删除第一行,我将只使用 colnames。