【发布时间】:2017-01-31 00:34:14
【问题描述】:
我正在尝试使用其中的子集函数执行 if 语句。 我有一个数据框 dat1,例如这样:
Unit Cost Date
1 40 Sep
1 50 Dec
2 55 Sep
2 30 Oct
并且基于它的行 nrow(dat1) 我想子集另一个数据帧 (dat2)
unit model sales
1 AAA 100
1 BBB 110
1 CCC 130
4 ZZZ 120
5 YYY 128
我写了一个这样的 if 语句:
Sales <- ifelse(nrow(dat1)>=30,
dat2[which(dat2$unit==1 & dat2$model=="AAA"),],
dat2[which(dat2$unit==1),])
所以如果 nrow>30 我想在 dat2 的 2 个维度上应用子集,否则只在其中一个维度上应用。 然而,这给了我一个只有第一列的列表,而不是一个包含 dat2 的所有 3 列的数据框。 执行此操作的正确命令是什么? 提前感谢您的帮助。
【问题讨论】:
-
使用
if和else。这不是ifelse的用例。
标签: r list if-statement dataframe subset