鉴于此数据框:
> seq <- as.character(c("1, 2, 3", "4, 5", NA, "6"))
> my.df <- data.frame(seq, stringsAsFactors = FALSE)
> str(my.df)
'data.frame': 4 obs. of 1 variable:
$ seq: chr "1, 2, 3" "4, 5" NA "6"
> my.df
seq
1 1, 2, 3
2 4, 5
3 <NA>
4 6
如何编写代码来添加第一列的总和?
seq my.sum
1 1, 2, 3 6
2 4, 5 9
3 <NA> NA
4 6 6
> str(my.df)
'data.frame': 4 obs. of 2 variables:
$ seq : chr "1, 2, 3" "4, 5" NA "6"
$ my.sum: num 6 9 NA 6
答案 0 :(得分:1)
这是一个基本的R解决方案,我们可以strsplit()
将seq
列添加到字符向量列表中,然后使用sapply()
对列表中的每个向量求和:
my.df$my.sum <- sapply(strsplit(my.df$seq, ", "), function(x) sum(as.numeric(x)))
my.df
# seq my.sum
#1 1, 2, 3 6
#2 4, 5 9
#3 <NA> NA
#4 6 6