基于多个条件创建新变量的问题

时间:2019-05-27 14:39:46

标签: r

我试图根据现有变量在R中创建新列。我有变量A和B,根据这些值,我想创建一个变量“ C”。变量A和B是“ unprocessed_data3”数据帧的一部分。

本质上,如果free为1且B9_new为1,我希望volfree等于1;如果free为1且B9_new为2,我希望volfree等于0;在所有其他情况下,volfree为N / A。我下面有用Stata编写的代码。

> gen volfree=1 if free==1 & B9_new==1

> replace volfree=0 if free==1 & B9_new==2

我尝试使用以下命令。

> unprocessed_data3$volfree = with(unprocessed_data3, ifelse(free ==0 , NA,
                               ifelse(B9_new=="1", 1, 0)))

我尝试使用它,但最终得到的NA大部分为0。我希望有很多NA且某些为0,但也有少数为1,这没有发生。我肯定知道其中有一些条件。

下面是我的代码

> unprocessed_data <- read.dta('C:/Users/Yuraku/Downloads/04291-0001-Data.dta')
> attach(unprocessed_data)

> unprocessed_data3 <- subset(unprocessed_data, A6 != 5 & A6 !=6)

> free <- unprocessed_data3$B8

> unprocessed_data3$free_2   <- free
> unprocessed_data3$free_new <- unfactor(free)
> unprocessed_data3$B9_new   <- unfactor(unprocessed_data3$B9)
> unprocessed_data3$volfree = with(unprocessed_data3, ifelse(free ==0 , NA,
                               ifelse(B9_new=="1", 1, 0)))

使用摘要和头函数,我发现我的最小值,最大值和中位数均为0。但是应该有将近50个“ 1”。此外,我也得到

的错误

>unexpected 'r' after expression

相反,我没有得到这个,这很奇怪。

0 个答案:

没有答案