我想重新排列一个数据帧,以便1)第一列始终保持在第一位,2)其余列的后半部分被拆分为每隔一秒出现一次.

请注意,在下面的示例中

请参考示例数据:

# Example data
N <- "AB"
l_x_1 <- 1
l_x_2 <- 2
l_x_3 <- 3
# ... not it should be able to handle different number of columns  

s_x_1 <- 1
s_x_2 <- 2
s_x_3 <- 3
# ... not it should be able to handle different number of columns (although always equal N of s_ and l_. 

# Current state
df <- tibble(N, l_x_1, l_x_2, l_x_3, s_x_1, s_x_2, s_x_3)
df


# What I want (but potential to handle different number of As and Bs)
df <- tibble(N, l_x_1, s_x_1, l_x_2, s_x_2,  l_x_3,  s_x_3)
df


推荐答案

df[c(1, matrix(seq_along(df)[-1], 2, byrow = TRUE))]

# # A tibble: 1 × 7
#   N     l_x_1 s_x_1 l_x_2 s_x_2 l_x_3 s_x_3
#   <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 AB        1     1     2     2     3     3

其 idea 是将列索引重新排序为matrix().例如.

c(matrix(1:6, 2, byrow = TRUE))
# [1] 1 4 2 5 3 6

R相关问答推荐

IQR()和stats之间四分位距计算的差异::分位数()在R和' ggpubr '

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

根据shiny 应用程序中的数字输入更改图标 colored颜色

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

咕噜中的元素列表:map

自动变更列表

如何根据R中其他列的值有条件地从列中提取数据?

在df中保留原始变量和新变量

使用列/行匹配将两个不同维度的矩阵相加

在嵌套列表中查找元素路径的最佳方法

从服务器在Shiny中一起渲染图标和文本

用R ggplot2求上、下三角形中两个变量的矩阵热图

为什么我使用geom_density的绘图不能到达x轴?

将选定的索引范围与阈值进行比较

R中有约束的优化问题:如何用复数和对数效益函数解决问题?

将项粘贴到向量中,并将它们分组为x的倍数,用空格分隔

R中Gamma回归模型均方误差的两种计算方法不一致

变长向量的矢量化和

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

生存时间序列的逻辑检验