对数据帧的一列中存在的元素求和 -> 在数据帧中创建一个新列

时间:2021-07-09 10:37:56

标签: r dataframe

我有一个这种类型的数据框(2 行,2 列):

ID  Molecules  
1   AA, BB, CC  
2   FF, DD

我想在 R 中生成一个与“分子”列中存在的分子数相对应的新列:

ID  Molecules    Number  
1   AA, BB, CC   3  
2   FF, DD       2  

1 个答案:

答案 0 :(得分:0)

几种方式-

  1. 计算数据中的逗号数并加 1。
df$Number <- stringr::str_count(df$Molecules, ',') + 1
df

#  ID  Molecules Number
#1  1 AA, BB, CC      3
#2  2     FF, DD      2
  1. 用逗号分割数据并计算长度。
df$Number <- lengths(strsplit(df$Molecules, ','))

数据

df <- structure(list(ID = 1:2, Molecules = c("AA, BB, CC", "FF, DD"
)), class = "data.frame", row.names = c(NA, -2L))