使用逻辑从现有的多列数据帧生成新的多列数据帧
Produce new multi-column data frame from existing multi-column data frames with logic
我有 3 个数据框,每个数据框都有多个列。所有列都是数值,我想用
这样的逻辑生成第四列
# this doesn't work when data frames have more than one column
d <- ifelse(A > 0, B, C)
然而,我所见过的 ifelse
的所有样本都只产生一个输出列。我想对所有列进行操作。我怎样才能做到这一点?
例如,给定这些数据帧
pivot <- data.frame(a=c(-1, 1), b=c(1, 1))
low <- data.frame(a=c(2.2, 3.3), b=c(4.4, 5.5))
high <- data.frame(a=c(10.1, 11.2), b=c(12.3, 14.4))
我想要一些像
这样的表达
result <- ifelse(pivot > 0, high, low)
生产
data.frame(a=c(2.2, 11.2), b=c(12.3, 14.4))
转换为 matrix
将解决此问题
as.data.frame(ifelse(pivot > 0, as.matrix(high), as.matrix(low)))
-输出
a b
1 2.2 12.3
2 11.2 14.4
我有 3 个数据框,每个数据框都有多个列。所有列都是数值,我想用
这样的逻辑生成第四列# this doesn't work when data frames have more than one column
d <- ifelse(A > 0, B, C)
然而,我所见过的 ifelse
的所有样本都只产生一个输出列。我想对所有列进行操作。我怎样才能做到这一点?
例如,给定这些数据帧
pivot <- data.frame(a=c(-1, 1), b=c(1, 1))
low <- data.frame(a=c(2.2, 3.3), b=c(4.4, 5.5))
high <- data.frame(a=c(10.1, 11.2), b=c(12.3, 14.4))
我想要一些像
这样的表达result <- ifelse(pivot > 0, high, low)
生产
data.frame(a=c(2.2, 11.2), b=c(12.3, 14.4))
转换为 matrix
将解决此问题
as.data.frame(ifelse(pivot > 0, as.matrix(high), as.matrix(low)))
-输出
a b
1 2.2 12.3
2 11.2 14.4