% separate_rows(type, sep=",") %>% #mutat-6ren">
gpt4 book ai didi

r - 将 "type"列转换为多个单独的评论列及其计数

转载 作者:行者123 更新时间:2023-12-04 08:38:36 25 4
gpt4 key购买 nike

我有一个包含 1 列和 1 个值的数据框

df <- data.frame(type = c("recommended: 882, meh: 501, exceptional: 283, skip: 185"),
stringsAsFactors=FALSE)
我正在尝试转换此 type列成多个单独的评论列及其计数
我想要的输出是
recommended meh exceptional skip
882 501 283 185
我无法从字符串中提取数字而是这样做
df %>% mutate(ind = row_number()) %>%
separate_rows(type, sep=",") %>%
#mutate(f = ifelse(is.na(f),0, f)) %>%
count(ind, type) %>%
spread(type, n, fill = 0) %>%
as.data.frame()
有人可以指出我正确的方向吗?

最佳答案

首先将逗号拆分为单独的行,然后将冒号拆分为单独的列,然后以宽格式获取数据。

library(tidyr)
df %>%
separate_rows(type, sep = ',\\s*') %>%
separate(type, c('type', 'value'), sep = ':\\s*', convert = TRUE) %>%
pivot_wider(names_from = type, values_from = value)

# recommended meh exceptional skip
# <int> <int> <int> <int>
#1 882 501 283 185

关于r - 将 "type"列转换为多个单独的评论列及其计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64673615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com