我有一个具有以下格式的数据帧.
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)
谢谢.
假设您的数据是以data.frame命名Data,组合strsplit和sapply简短的方式工作的.
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调用返回列表中每个向量的长度.