我想根据自动生成的字典/索引/词汇表/ notsurehowtocallit拆分列表
我有一个数据框,其中最后一列是字符列表。其中一些包含3个字符串,一些包含20个,其他都不包含。数据看起来像这样
name age category
1 John 34 c('sports', 'USA')
2 Mary 20 c('model', 'sports', 'Canada')
3 Sue 65 c('scholar', 'USA')
4 Carl 12 NA
n ... .. ...
数据很长,我不知道要查找什么。这意味着,我没有期望的字符串列表。我希望R为我解决该问题并为我生成此字符串列表。
为此,我已经尝试过:
> category.frq <- table(unlist(category))
> cbind(names(category.frq),as.integer(category.frq))
哪个给我方便的字数统计和索引编制。但是我是R的新手,所以我不确定如何从那里开始。有可以帮我做到的包裹吗?
理想情况下,我会得到以下结果:
name age category sports USA model ...
1 John 34 c('sports', 'USA') 1 1 NA
2 Mary 20 c('model', 'sports', 'Canada') 1 NA 1
3 Sue 65 c('scholar', 'USA') NA 1 NA
4 Carl 12 NA NA NA NA
n ... .. ... .. .. ..
答案 0 :(得分:0)
对@Akrun的评论进行更深入的阐述...
df1 <- data.frame(category = I(list(c('a','b','c', 'a'),
c('b','d'),
c('b', 'e', 'f', 'd'),
c('g','h'),
NA)))
l <- df1$category
names(l) <- seq_len(length(l))
df2 <- as.data.frame.matrix(t(table(stack(l))))
df2[df2 == 0] <- NA
df1 <- cbind(df1, df2)
df1
# category a b c d e f g h
#1 a, b, c, a 2 1 1 NA NA NA NA NA
#2 b, d NA 1 NA 1 NA NA NA NA
#3 b, e, f, d NA 1 NA 1 1 1 NA NA
#4 g, h NA NA NA NA NA NA 1 1
#5 NA NA NA NA NA NA NA NA NA