我试图根据现有变量在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
相反,我没有得到这个,这很奇怪。