为R中的每个类别值创建列

为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等,每个教育级别

我有一个叫做“家”的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等,每个教育级别的逻辑相同。 预期产出将是:

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))