每 3 行合并两个数据
Combine two data by every 3rd row
我有以下两个数据框:
df<- structure(t(data.frame(x=1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10)))
df2<- structure(data.frame(x= rep(30, times=10)))
我希望合并这两个数据框,以便 df2
的一行插入到 df
上的每三个点中。所以最终的数据框应该是这样的:
df3<- structure(t(data.frame(x=1,1,30,2,2,30,3,3,30,4,4,30,5,5,30,6,6,30,7,7,30,8,8,30,9,9,30,10, 10,30)))
这可以通过为每个数据框创建一个分组变量来完成。喜欢:
df$group<- rep(1:10, times=2) %>% arrange(group)
df2$group<- rep(1:10)
然后根据分组进行合并,但是df
中我的行的顺序很重要,不能调换。
如有任何帮助,我们将不胜感激
我们可以通过将两个数据框与客户排序顺序连接在一起来做到这一点。
类似于以下内容:
df<- structure(t(data.frame(x=1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10)))
df2<- structure(data.frame(x= rep(30, times=10)))
# current row orders
df = df %>%
mutate(row_number = 1:nrow(df),
source = "df")
df2 = df2 %>%
mutate(row_number = 1:nrow(df2),
source = "df2")
# prep customer sorters
df2 = df2 %>% mutate(row_number = 2 * row_number + 0.5)
# attend and sort
df3 = rbind(df, df2) %>%
arrange(row_number)
# remove extra columns
df3 = df3 %>%
select(-row_number, -source)
大多数聪明之处都发生在客户分类器中:row_number = 2 * row_number + 0.5
of df2
。
- 添加 0.5 确保
df2
行出现在 df
行之间。
- 乘以2表示
df2
的每一行之间从df
开始有两行
- 获取当前行顺序意味着保留
df
和 df2
的行顺序。
我有以下两个数据框:
df<- structure(t(data.frame(x=1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10)))
df2<- structure(data.frame(x= rep(30, times=10)))
我希望合并这两个数据框,以便 df2
的一行插入到 df
上的每三个点中。所以最终的数据框应该是这样的:
df3<- structure(t(data.frame(x=1,1,30,2,2,30,3,3,30,4,4,30,5,5,30,6,6,30,7,7,30,8,8,30,9,9,30,10, 10,30)))
这可以通过为每个数据框创建一个分组变量来完成。喜欢:
df$group<- rep(1:10, times=2) %>% arrange(group)
df2$group<- rep(1:10)
然后根据分组进行合并,但是df
中我的行的顺序很重要,不能调换。
如有任何帮助,我们将不胜感激
我们可以通过将两个数据框与客户排序顺序连接在一起来做到这一点。
类似于以下内容:
df<- structure(t(data.frame(x=1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10)))
df2<- structure(data.frame(x= rep(30, times=10)))
# current row orders
df = df %>%
mutate(row_number = 1:nrow(df),
source = "df")
df2 = df2 %>%
mutate(row_number = 1:nrow(df2),
source = "df2")
# prep customer sorters
df2 = df2 %>% mutate(row_number = 2 * row_number + 0.5)
# attend and sort
df3 = rbind(df, df2) %>%
arrange(row_number)
# remove extra columns
df3 = df3 %>%
select(-row_number, -source)
大多数聪明之处都发生在客户分类器中:row_number = 2 * row_number + 0.5
of df2
。
- 添加 0.5 确保
df2
行出现在df
行之间。 - 乘以2表示
df2
的每一行之间从 - 获取当前行顺序意味着保留
df
和df2
的行顺序。
df
开始有两行