R:使用mutate,ifelse和grepl进行虚拟编码 - 错误

时间:2017-09-01 12:27:28

标签: r dplyr

我正在尝试在变量(两步)中编写两个三级的代码,因为我想运行一个回归。我是R的新手,并没有自己编写代码。

步骤1:变量是Birth_order,我想分析的两个级别是Firstborn和Later出生,同时仅排除分析中的孩子(和虚拟编码)。

Dat <- mutate(Dat, Wth_Sib= ifelse(grepl("Firstborn", Dat$Birth_Order), 1, 
       ifelse(grepl("Later born", Dat$Birth_Order), 0, NA)))

运行代码会给我错误:

Error in mutate_impl(.data, dots) : 
  Column `Wth_Sib` must be length 212 (the number of rows) or one, not 0

第2步:比较兄弟姐妹与仅儿童。

Dat <- mutate(Dat, Sib_vs_Only= ifelse(grepl("Firstborn", Dat$Birth_Order), 1, 
       ifelse(grepl("Later born", Dat$Birth_Order), 1, 0)))

错误:

Error in mutate_impl(.data, dots) : 
  Column `Sib_vs_Only` must be length 212 (the number of rows) or one, not 0

我不知道错误意味着什么,我不确定代码是否是接近任务的最佳方式。我到处寻找答案,我会非常感谢任何有关更好方法的帮助或建议!

谢谢!

0 个答案:

没有答案