我有一个具有以下格式的数据框。
A B
xxx 100;2;30;5
yyy 30;5
zzz 35
如何计算第二列 B 列中的数字数量并转换为计数,如下所示:
A B
xxx 4
yyy 2
zzz 1
谢谢。
最佳答案
假设您的数据位于名为 Data
的 data.frame
中,由 strsplit
和 sapply
组合而成这个工作很短。
Data$C <- sapply(strsplit(Data$B, ";"), length)
strsplit
是矢量化的,因此它将 Data$B
列的每个元素按 ";"
拆分并返回向量列表。该列表在 Data
中的每一行都有一个元素,每个列表元素包含一个向量(例如 "100;2;30;5"
转换为 c( “100”、“2”、“30”、“5”)
)。 sapply
调用返回列表中每个向量的长度。
关于R:计数并转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509319/