R:计算并转换为数字

use*_*718 4 r count

我有一个具有以下格式的数据帧.

A    B
xxx 100;2;30;5
yyy 30;5
zzz 35
Run Code Online (Sandbox Code Playgroud)

如何计算第二列中B列中的数字数并转换为计数,如下所示:

A    B
xxx  4
yyy  2
zzz  1
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jos*_*ich 8

假设您的数据是以data.frame命名Data,组合strsplitsapply简短的方式工作的.

Data$C <- sapply(strsplit(Data$B, ";"), length)
Run Code Online (Sandbox Code Playgroud)

strsplit是矢量化的,因此它会拆分列Data$B的每个元素";"并返回一个矢量列表.该列表每行Data包含一个元素,每个列表元素包含一个向量(例如"100;2;30;5",转换为c("100","2","30","5")).该sapply调用返回列表中每个向量的长度.