【问题标题】:Translating Stata variable coding into R code将 Stata 变量编码转换为 R 代码
【发布时间】:2018-07-07 00:47:58
【问题描述】:

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

状态

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 $<-.data.frame(*tmp*, "A", value = list(X = c(1L, 2L, 3L, ) 中的错误: 替换有106行,数据有144

问题:

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

【问题讨论】:

  • 您需要提供minimal reproducible example,以便我们可以复制您正在尝试做的事情。
  • 试试within(data, df$A &lt;- ifelse(q1&lt;9, q1, ifelse(q1&gt;=9, NA, NA)))
  • 我不敢相信 R 相当于一个简单的 Stata 命令这么长?
  • 还是不行。但同样,我无法想象 R 代码解决方案有那么长吗?有人有想法吗?
  • 它在我的电脑上运行良好。

标签: r encoding stata


【解决方案1】:

例子:

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

【讨论】:

  • 完成了这项工作。我是否正确理解它本质上用 NA 或 >4 替换了值
  • A 被创建并等于q1q1 &lt; 4 否则NA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 2012-04-25
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
相关资源
最近更新 更多