【发布时间】:2021-11-16 18:44:07
【问题描述】:
我有一个看起来像这样的列名列表...
colnames(dat)
1 subject
2 e.type
3 group
4 boxnum
5 edate
6 file.name
7 fr
8 active
9 inactive
10 reward
11 latency.to.first.active
12 latency.to.first.inactive
13 act0.600
14 act600.1200
15 act1200.1800
16 act1800.2400
17 act2400.3000
18 act3000.3600
19 inact0.600
20 inact600.1200
21 inact1200.1800
22 inact1800.2400
23 inact2400.3000
24 inact3000.3600
25 rew0.600
26 rew600.1200
27 rew1200.1800
28 rew1800.2400
29 rew2400.3000
30 rew3000.3600
我想获取列出act#、inact#和reward#的列的行总和
这行得通...
for (row in 1:nrow(dat)) {
dat[row, "active"] = rowSums(dat[row,c(13:18)])
dat[row, "inactive"] = rowSums(dat[row,c(19:24)])
dat[row, "reward"] = rowSums(dat[row,c(25:30)])
}
但我不想对其进行硬编码,因为这 3 个部分的列数可能会发生变化。如何在不对列索引进行硬编码的情况下做到这一点?
另外,例如,我尝试搜索“行为”命名列,但它也包括“活动”列。
【问题讨论】:
标签: r