我在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中?
答案 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