我想计算每组列中字符串的出现次数。在这种情况下,字符串通常是字符列中的子字符串。
我有一些数据,例如
ID String village
1 fd_sec, ht_rm, A
2 NA, ht_rm A
3 fd_sec, B
4 san, ht_rm, C
我开始使用的代码显然是不正确的,但我在搜索中未能找到可以在列中使用 grep 函数并按村庄分组的方法
impacts <- se %>% group_by(village) %>%
summarise(c_NA = round(sum(sub$en41_1 == "NA")),
c_ht_rm = round(sum(sub$en41_1 == "ht_rm")),
c_san = round(sum(sub$en41_1 == "san")),
c_fd_sec = round(sum(sub$en41_1 == "fd_sec")))
理想情况下我的输出是:
village fd_sec NA ht_rm san
A 1 1 2
B 1
C 1 1
先感谢您
您还可以使用cSplit()
来自我的“splitstackshape”包。由于此包还加载“data.table”,因此您可以使用dcast()
将结果制成表格。
Example:
library(splitstackshape)
cSplit(mydf, "String", direction = "long")[, dcast(.SD, village ~ String)]
# Using 'village' as value column. Use 'value.var' to override
# Aggregate function missing, defaulting to 'length'
# village fd_sec ht_rm san NA
# 1: A 1 2 0 1
# 2: B 1 0 0 0
# 3: C 0 1 1 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)