我在研究项目问题上需要帮助。
代码问题是:我有一个名为FRAMETRUE的大数据框,需要在一个新列中逐行对这些行的某些列求和,我将称之为Group1。
例如:
head.table(FRAMETRUE)
Municipalities 1989 1990 1991 1992 1993 1994 1995 1996 1997
A 3 3 5 2 3 4 2 5 3
B 7 1 2 4 5 0 4 8 9
C 10 15 1 3 2 NA 2 5 3
D 7 0 NA 5 3 6 4 5 5
E 5 1 2 4 0 3 5 4 2
我必须在名为Group1的新列中对1989年到1995年的行中的值求和。比如Group1应该是
列Group1
22
23
依旧......
我知道它必须是简单的东西,我只是不明白,我还在学习R
答案 0 :(得分:0)
如果您正在寻找R解决方案,可以采用以下方法:诀窍是使用List<String> result = list.stream()
.peek(System.out::println)
.distinct()
.sorted(Comparator.comparingInt(s ->
Integer.parseInt(s.substring(s.indexOf("-") + 1, s.length()))))
.collect(Collectors.toList());
并结合[
rowSums
答案 1 :(得分:0)
dplyr
解决方案,允许您按名称引用列:
library(dplyr)
municipalities <- LETTERS[1:4]
year1989 <- sample(4)
year1990 <- sample(4)
year1991 <- sample(4)
df <- data.frame(municipalities,year1989,year1990,year1991)
# df
municipalities year1989 year1990 year1991
1 A 4 2 2
2 B 3 1 3
3 C 1 3 4
4 D 2 4 1
# Calculate row sums here
df <- mutate(df, Group1 = rowSums(select(df, year1989:year1991)))
# df
municipalities year1989 year1990 year1991 Group1
1 A 4 2 2 8
2 B 3 1 3 7
3 C 1 3 4 8
4 D 2 4 1 7