我正在尝试合并两个数据框(相同大小)并创建新数据框,其中包含相同列和行中较小数量的两个值。
例如,两个数据帧是:
DF1
1 2 3
2 2 5
5 3 2
df 2
2 1 2
4 4 2
3 2 4
所需的输出是
1 1 2
2 2 2
3 2 2
换句话说,比较两个数据帧中的每个值并选择较小的数字。
答案 0 :(得分:3)
我们可以使用pmin
获取每个相应元素的min
pmin(df1, df2)
# v1 v2 v3
#1 1 1 2
#2 2 2 2
#3 3 2 2
如果有多个数据集,请将其放在list
并应用pmin
do.call(pmin, list(df1, df2))
# v1 v2 v3
#1 1 1 2
#2 2 2 2
#3 3 2 2
df1 <- structure(list(v1 = c(1L, 2L, 5L), v2 = c(2L, 2L, 3L), v3 = c(3L,
5L, 2L)), .Names = c("v1", "v2", "v3"), class = "data.frame",
row.names = c(NA, -3L))
df2 <- structure(list(v1 = c(2L, 4L, 3L), v2 = c(1L, 4L, 2L), v3 = c(2L,
2L, 4L)), .Names = c("v1", "v2", "v3"), class = "data.frame",
row.names = c(NA, -3L))