此问题已在此处有答案:
Count values separated by a comma in a character string(5个答案)
昨天关门了。
我有一个列,它的观察结果是字符类型,并按如下方式组织(输出示例如下):
df <- data.frame(observation = c('["Extra pillows and blankets", "Dishes and silverware", "Room-darkening shades", "Hot water kettle", "Ethernet connection", "Wifi", "Dedicated workspace", "Oven"]',
'["Extra pillows and blankets", "Dishes and silverware", "Room-darkening shades", "Hot water kettle", "Ethernet connection", "Wifi", "Dedicated workspace", "Oven"]',
'["Extra pillows and blankets", "Dishes and silverware", "Room-darkening shades", "Hot water kettle", "Ethernet connection", "Wifi", "Dedicated workspace", "Oven"]'
))
我的目标是计算每个观察的每个列表中的元素数量(考虑到列表中这些元素之间用逗号分隔)。我试着把它转换成一个因子,一个列表,我用了长度和长度,还有很多我不记得的东西。有人知道如何解决这个问题吗?
2条答案
按热度按时间8cdiaqws1#
我们可以使用
str_count()
来计算元素:在这里,我们计算
,
并加1以获得元素的计数:jobtbby32#
这是一个基本的R解决方案。
创建于2023-05-06使用reprex v2.0.2
还是那句俏皮话
创建于2023-05-06使用reprex v2.0.2
但这会在计数之前创建一个列表,这需要更多的内存,速度也更慢。也许第一个解决方案重写为一行程序: