为R中的每个类别值创建列
我有一个叫做“家”的df,它有两个栏:“教育水平”和“保险”。教育程度是一个分类变量,有四个等级:小学、高中、中学和大学。例如:为R中的每个类别值创建列,r,R,我有一个叫做“家”的df,它有两个栏:“教育水平”和“保险”。教育程度是一个分类变量,有四个等级:小学、高中、中学和大学。例如: Ed.Level. Insurance Primary. YES Primary. NO Primary. NO College. YES College. YES High-Sch. YES High-Sch. NO Terc. YES 我需要创建一个新的列,名为:Primary,值为:YES、NO等,每个教育级别
Ed.Level. Insurance
Primary. YES
Primary. NO
Primary. NO
College. YES
College. YES
High-Sch. YES
High-Sch. NO
Terc. YES
我需要创建一个新的列,名为:Primary,值为:YES、NO等,每个教育级别的逻辑相同。
预期产出将是:
Primary. Secondary High Sch College
YES. NO. YES. NO
NO. YES. NO. YES
YES. YES YES. NO
NO. YES YES. YES
预期输出中的值引用保险字段
我尝试了转置,但没有成功,cbind,merges,但没有成功。
我该怎么做?
谢谢。在创建序列列后,我们可以使用来重新塑造为“宽”格式,以处理重复的行
library(dplyr)
library(tidyr)
library(data.table)
df1 %>%
mutate(rn = rowid(Ed.Level.)) %>%
pivot_wider(names_from = Ed.Level., values_from = Insurance) %>%
select(-rn)
数据
df1您需要库(dplyr);图书馆(tidyr);图书馆(数据表);df1%>%变异(rn=rowid(Ed.Level.))%>%pivot\u更宽(名称\u from=Ed.Level.,值\u from=Insurance)
df1 <- structure(list(Ed.Level. = c("Primary.", "Primary.", "Primary.",
"College.", "College.", "High-Sch.", "High-Sch.", "Terc."), Insurance = c("YES",
"NO", "NO", "YES", "YES", "YES", "NO", "YES")),
class = "data.frame", row.names = c(NA,
-8L))