我正在尝试翻译下面的SAS
代码:
data year5 year10;
set loans;
if ID in ("ELC", "OEC") then output year5;
else output year10;
run;
如何在R
中执行此操作,以便如果一个值在一组值中,它将输出到一个dataframe
,但如果不是,它将输出到另一个?
更具体地说,我正在使用三个数据帧。原始数据帧,其中包含列“ ID”。如果列“ ID”中的值为“ ELC”或“ OEC”,则原始数据帧中的那些行将被输出到新的数据帧Year5中,否则(该“ ID”列中存在另一个值) (来自原始数据框)将输出到新的数据框year10。我已经为Year5和Year10创建了空数据框。
答案 0 :(得分:1)
如果您需要两个单独的数据框,则只需对数据框进行过滤(或使用子集),然后使用dplyr创建两个新的数据框。 (我猜这不是最有效的)
library(dplyr)
year5 <- filter(df, ID %in% c("ELC","OEC"))
year10 <- filter(df, !ID %in% c("ELC","OEC"))
答案 1 :(得分:0)
如果我正确理解了您的问题,则需要一份ifelse
声明
set_of_values <- c("ELC", "OEC")
df$output <- ifelse(df$ID %in% set_of_values, df$year5, df$year10)
这里我假设ID,year5,year10是数据框df中的列