R 自动将数据框中缺失的行添加到现有数据框中
Add the missing rows in the dataframe to an existing dataframe automatically by R
我正在尝试实现一个功能,如果我自己编码可能会太复杂,所以我在这里寻求帮助,看看专业编码人员是否有更好的解决方案:)
您可以在下面找到一个流量来源-目的地示例 table(A、B 和 C 都是位置):
data <- data.frame(origin = c("A", "A", "B", "B", "B", "C"),
destination = c("B", "C", "A", "B", "C", "A"),
number = c(7,2,3,5,6,4))
table 看起来像这样:
origin destination number
1 A B 7
2 A C 2
3 B A 3
4 B B 5
5 B C 6
6 C A 4
理想情况下,每个独立的origin
应该有3行数据,例如,从A到A,A到B和A到C。但是正如你在[=29=中看到的那样], 对于原点 A 和 C,缺少一些数据(原点 A 为 A 到 A,原点 C 为 C 到 B 和 C)。
我想要实现的是让 R 自动添加缺失的行并为列分配一个数字“1”number
也就是说最后的 table 应该如下所示:
origin destination number
1 A A 1
2 A B 7
3 A C 2
4 B A 3
5 B B 5
6 B C 6
7 C A 4
8 C B 1
9 C C 1
我想知道是否有任何现有的 R 公式可以实现此功能?如果没有,您有什么建议可以使数据处理编码简短高效?非常感谢您的提前帮助!
tidyr
中的 complete
函数执行此操作。
library(tidyr)
complete(data, origin, destination, fill = list(number = 1))
# # A tibble: 9 x 3
# origin destination number
# <chr> <chr> <dbl>
# 1 A A 1
# 2 A B 7
# 3 A C 2
# 4 B A 3
# 5 B B 5
# 6 B C 6
# 7 C A 4
# 8 C B 1
# 9 C C 1
我正在尝试实现一个功能,如果我自己编码可能会太复杂,所以我在这里寻求帮助,看看专业编码人员是否有更好的解决方案:)
您可以在下面找到一个流量来源-目的地示例 table(A、B 和 C 都是位置):
data <- data.frame(origin = c("A", "A", "B", "B", "B", "C"),
destination = c("B", "C", "A", "B", "C", "A"),
number = c(7,2,3,5,6,4))
table 看起来像这样:
origin destination number
1 A B 7
2 A C 2
3 B A 3
4 B B 5
5 B C 6
6 C A 4
理想情况下,每个独立的origin
应该有3行数据,例如,从A到A,A到B和A到C。但是正如你在[=29=中看到的那样], 对于原点 A 和 C,缺少一些数据(原点 A 为 A 到 A,原点 C 为 C 到 B 和 C)。
我想要实现的是让 R 自动添加缺失的行并为列分配一个数字“1”number
也就是说最后的 table 应该如下所示:
origin destination number
1 A A 1
2 A B 7
3 A C 2
4 B A 3
5 B B 5
6 B C 6
7 C A 4
8 C B 1
9 C C 1
我想知道是否有任何现有的 R 公式可以实现此功能?如果没有,您有什么建议可以使数据处理编码简短高效?非常感谢您的提前帮助!
tidyr
中的 complete
函数执行此操作。
library(tidyr)
complete(data, origin, destination, fill = list(number = 1))
# # A tibble: 9 x 3
# origin destination number
# <chr> <chr> <dbl>
# 1 A A 1
# 2 A B 7
# 3 A C 2
# 4 B A 3
# 5 B B 5
# 6 B C 6
# 7 C A 4
# 8 C B 1
# 9 C C 1