我试图在R中合并2个数据帧,但我有两个不同的列,带有不同类型的ID变量。有时一行会有其中一列的值,而另一列却没有。我想同时考虑它们,这样,如果一个帧缺少一个列的值,那么将使用另一个列。
> df1 <- data.frame(first = c('a', 'b', NA), second = c(NA, 'q', 'r'))
> df1
first second
1 a <NA>
2 b q
3 <NA> r
> df2 <- data.frame(first = c('a', NA, 'c'), second = c('p', 'q', NA))
> df2
first second
1 a p
2 <NA> q
3 c <NA>
我想合并这两个数据帧,得到2行:
> merge(df1,df2, by='first', incomparables = c(NA))
first second.x second.y
1 a <NA> p
> merge(df1,df2, by='second', incomparables = c(NA))
second first.x first.y
1 q b <NA>
编辑:理想情况下,输出如下所示:
> df3 <- data.frame(first = c('a', 'b'), second = c('p','q'))
> df3
first second
1 a p
2 b q
使用sqldf
我们可以这样做,就像在SQL中一样,我们可以使用或
来交替连接条件
library(sqldf)
df <- sqldf("select a.*, b.*
from df1 a
join df2 b
ON a.first = b.first
OR a.second = b.second")
library(dplyr)
#If value in first is NA i.e. is.na(first) is TRUE then use first..3 value's else use first value's and the same for second
df %>% mutate(first = ifelse(is.na(first), first..3, first),
second = ifelse(is.na(second), second..4, second)) %>%
#Discard first..3 and second..4 since we no longer need them
select(-first..3, -second..4)
first second
1 a p
2 b q
本文向大家介绍如何在R中合并列表?,包括了如何在R中合并列表?的使用技巧和注意事项,需要的朋友参考一下 当我们有多个列表但它们具有相似的数据类型时,我们可能想要合并或合并这些列表。这将有助于使用,因为我们可以使用一个列表名称执行计算,而不是将其应用于多个列表名称。我们可以借助mapply函数组合多个列表。 示例 请看以下列表- 现在假设,我们还有一个列表,即List3,然后可以按照如下所示的相同方
我最近写了 这似乎很尴尬。我知道(以及其他一些包)定义了 但即便如此,这一切都感觉有点手动。有什么我没见过的收紧它的好模式吗?
本文向大家介绍如何在R中合并具有相同列数的矩阵?,包括了如何在R中合并具有相同列数的矩阵?的使用技巧和注意事项,需要的朋友参考一下 列数相同的矩阵可以按行合并。例如,如果我们有五个矩阵列表,每个矩阵都有六列,则可以通过合并这些矩阵的行将这些矩阵转换为单个矩阵。可以使用do.call(rbind,“ List_of_matrices_object_name”)来完成。 示例 请看以下矩阵及其列表-
我有以下数据
本文向大家介绍如何标准化R数据框中的列?,包括了如何标准化R数据框中的列?的使用技巧和注意事项,需要的朋友参考一下 这可以通过使用缩放功能来完成。 示例