【发布时间】:2016-11-16 16:34:34
【问题描述】:
我正在尝试将 SAS 脚本转换为 R 来学习 R。下面是 SAS 中的脚本。
if continent=1 and (country=5 or country=10) then rate = 8
这是我对名为 data 的数据框的尝试:
data$rate[(continent==1) & (country==5 | country==10)] <- 8
或者:
data$rate[(continent==1) & country %in% c(5,10)] <-8
很遗憾,尝试无法正确生成结果。结果显示当大洲=1 或国家/地区=5 或国家/地区=10 时的比率为 8。我想我在 R 中组合逻辑运算符是错误的。
谁能帮我解决这个问题?非常感谢!
注意:我在上面使用了 attach(data),因为我懒得再次重写数据。
【问题讨论】:
-
没有样本数据,难以重现。试试看:
data$rate[(data$continent==1 & data$country==5 | data$country==10)] <- 8 -
我觉得你少了一个逗号
data$rate[(continent==1) & (country==5 | country==10),] <- 8 -
attach(data)总的来说是一个非常糟糕的主意。
标签: r sas logical-operators