我有一个.csv文件,就像
COLUMN1 COLUMN2 COLUMN3 COLUMN4
1 a 12/16/17 1 1
2 b 15 1 2
3 c 18 1 3
4 d 12/15 4 5
5 e 13/12 1 5
如何计算数字x的次数出现在COLUMN2中?我期望的结果是
12 15 13 16 17 18
3 2 1 1 1 1
答案 0 :(得分:2)
我们可以使用strsplit
和table
:
x <- c("12/16/17", "15", "18", "12/15", "13/12")
# [1] "12/16/17" "15" "18" "12/15" "13/12"
y <- unlist(strsplit(x, split="/"))
# [1] "12" "16" "17" "15" "18" "12" "15" "13" "12"
z <- table(y)
#12 13 15 16 17 18
# 3 1 2 1 1 1
如果您想要问题中的订单,则需要将y
编码为具有所需级别的因素:
z <- table(factor(y, levels = unique(y)))
#12 16 17 15 18 13
# 3 1 1 2 1 1
答案 1 :(得分:2)
我们可以将scan
与table
table(scan(text=df1$COLUMN2, sep="/", what=numeric(), quiet = TRUE))
# 12 13 15 16 17 18
# 3 1 2 1 1 1
如果列为factor
,请转换为character
并在scan
中使用
table(scan(text=as.character(df1$COLUMN2), sep="/",
what=numeric(), quiet = TRUE))