Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在一个数据帧中复制每一行的次数等于该行中的值在另一个数据帧中显示的次数?_R_Dataframe - Fatal编程技术网

R 在一个数据帧中复制每一行的次数等于该行中的值在另一个数据帧中显示的次数?

R 在一个数据帧中复制每一行的次数等于该行中的值在另一个数据帧中显示的次数?,r,dataframe,R,Dataframe,我很抱歉,因为我不太确定如何在不使问题变得非常冗长的情况下表达我的问题,因为重复的行也需要与原始行有一些更改的值 我有两个数据帧。第一个df1记录从源到目标的所有实际路径,而第二个df2包含所有可能的路径。以下是一些样本数据: df1 一行 来源 目的地 有效载荷 1. A. B 10010101 2. A. D 11101011 3. A. B 10111111 4. E B 01100110 也许您可以尝试合并两个数据帧。使用base Rmerge可以执行以下操作(使用df1中的“Desti

我很抱歉,因为我不太确定如何在不使问题变得非常冗长的情况下表达我的问题,因为重复的行也需要与原始行有一些更改的值

我有两个数据帧。第一个df1记录从源到目标的所有实际路径,而第二个df2包含所有可能的路径。以下是一些样本数据:

df1 一行 来源 目的地 有效载荷 1. A. B 10010101 2. A. D 11101011 3. A. B 10111111 4. E B 01100110
也许您可以尝试合并两个数据帧。使用base R
merge
可以执行以下操作(使用
df1
中的“Destination”和
df2
中的“Source”)。如前所述,您需要删除行以排除“原始源”。重命名并选择列将提供最终输出。请让我知道这是否是你的想法

d <- subset(
  merge(df1, df2, by.x = "Destination", by.y = "Source", all = TRUE),
  Source != Destination.y
)

data.frame(
  Source = d$Destination,
  Destination = d$Destination.y,
  Payload = d$Payload
)

这比我想做的要优雅得多。非常感谢。不过有一个更正-您在代码中做得正确,但在括号中的解释中,它是来自df1的“目的地”和来自df2的“源”。@RoughRider1谢谢-我更正了答案。很高兴这有帮助!
   Source Destination  Payload
1       B           C 10010101
2       B           E 10010101
3       B           F 10010101
4       B           C 10111111
5       B           E 10111111
6       B           F 10111111
7       B           C  1100110
8       B           F  1100110
9       B           A  1100110
10      D           C 11101011
11      D           H 11101011