我试图将“FRUITS”列转换为宽格式的单独列(“Apple”和“Banana”)。
Gender AgeGroup EAT FRUITS
1 Female 30yr_39yr Yes Apple
2 Female 20yr_29yr Yes Apple
3 Female 70yr_80yr Yes Apple
4 Male 50yr_59yr Yes Banana
5 Female 40yr_49yr Yes Apple
6 Female 70yr_80yr Yes Apple
字符串
如何将FRUITS列转换为:
Gender AgeGroup EAT Apple Banana
1 Female 30yr_39yr Yes TRUE FALSE
2 Female 20yr_29yr Yes TRUE FALSE
3 Female 70yr_80yr Yes TRUE FALSE
4 Male 50yr_59yr Yes FALSE TRUE
5 Female 40yr_49yr Yes TRUE FALSE
6 Female 70yr_80yr Yes TRUE FALSE
型
下面是我使用的JavaScript:
data.frame(
Gender = c("Female", "Female", "Female", "Male", "Female", "Female"),
AgeGroup = c("30yr_39yr", "20yr_29yr", "70yr_80yr", "50yr_59yr", "40yr_49yr", "70yr_80yr"),
EAT = c("Yes", "Yes", "Yes", "Yes", "Yes", "Yes"),
FRUITS = c("Apple", "Apple", "Apple", "Banana", "Apple", "Apple")
)
型
5条答案
按热度按时间jjjwad0x1#
字符串
要概括更多的价值,您可以使用用途:
型
rslzwgfq2#
要使用
tidyr::pivot_wider
整形为wide,您必须向数据集添加一个值列,并为每一行添加一个具有唯一id的列:字符串
fkvaft9z3#
下面是使用
unnest_wider()
的方法:字符串
下面是一个使用
values_fn
的稍微修改的版本:对于这个具体的例子,
型
ruarlubt4#
编辑
使用pivot_wider的原始答案是错误的,我删除了它。正如@stefan在评论中建议的那样,它删除了一行。一个适当的解决方案将包括添加索引列的初步步骤,正如@TarJae的答案中所示,我应该只添加简化
values_fn = ~ TRUE
。dummy_wider建议是一个有效的替代方案如果值的独热编码/虚拟表示是可以的(1和0而不是逻辑),
fastDummies::dummy_cols
也很好:字符串
xcitsw885#
这里还有两个:
个字符