合并两个数据框并用较小的值创建新的
Merge two dataframe and create new on with smaller values
我正在尝试合并两个数据框(相同大小)并创建新的数据框,该数据框在同一列和行中包含较少数量的两个值。
例如,两个数据帧是:
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
换句话说,比较两个数据框中的每个值并选择较小的数字。
我们可以用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))
我正在尝试合并两个数据框(相同大小)并创建新的数据框,该数据框在同一列和行中包含较少数量的两个值。
例如,两个数据帧是:
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
换句话说,比较两个数据框中的每个值并选择较小的数字。
我们可以用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))