将Stata变量编码转换为R代码

时间:2018-07-06 09:05:26

标签: r encoding stata

我在Stata do文件中尝试将其转换为R的过程中具有以下变量编码:

Stata

gen A=q1 if q1<4
gen B=q2 if q2<4
gen C=q3 if q3<4
...

R

# Example data
data = read.csv("https://pastebin.com/raw/BHUJpwqQ")

data$A <- subset(data,q1<4)
...

返回:

  

数据$ A <-数据$ q1 [数据$ q1 <4]   $<-.data.frame*tmp*中的错误,“ A”,值= list(X = c(1L,2L,3L,:     替换有106行,数据有144

问题:

如何正确将Stata命令传输到R中?

2 个答案:

答案 0 :(得分:3)

示例:

data$A <- ifelse(data$q1 < 4, data$q1, NA)

实际情况:

> data <- data.frame(q1 = sample(2:6))
> data
  q1
1  5
2  2
3  3
4  6
5  4
> data$A <- ifelse(data$q1 < 4, data$q1, NA)
> data
  q1  A
1  5 NA
2  2  2
3  3  3
4  6 NA
5  4 NA

答案 1 :(得分:1)

以下对我有用:

data <- data.frame(q1 = sample(2:6))
within(data, A <- ifelse(q1 < 4, q1, ifelse(q1 >= 4, NA, NA)))

  q1  A
1  4 NA
2  3  3
3  2  2
4  5 NA
5  6 NA