我有一个数据帧,看起来是这样的:
example <- data.frame(
date = as.Date(c('2001-01-01',
'2001-01-02',
'2001-01-01',
'2001-01-02')),
PID_A = c(1091, 1091, 1037, 1037),
PID_B = c(2091, 2091, 2037, 2037),
resp_A = c(3,1,2,4),
resp_B = c(2,4,3,1),
connect_A = c(6,2,5,3),
connect_B = c(5,3,6,2),
test_A = c(3,9,0,0),
test_B = c(1,1,1,1)
)
我想在相关列之间交换值,使X_A现在是X_B,X_B现在是X_A.我想在所有列中执行此操作,并将_A和_B附加到列名except PID_A和PID_A(例如,仅resp
、connect
、test
).实际上,我有更多这样的列,但出于示例的原因,我已将数据集简化为这三个变量.
有没有一种有效的方法来做到这一点?
这是所需的输出:
example_solution <- data.frame(
date = as.Date(c('2001-01-01',
'2001-01-02',
'2001-01-01',
'2001-01-02')),
PID_A = c(1091, 1091, 1037, 1037),
PID_B = c(2091, 2091, 2037, 2037),
resp_A = c(2,4,3,1),
resp_B = c(3,1,2,4),
connect_A = c(5,3,6,2),
connect_B = c(6,2,5,3),
test_A = c(1,1,1,1),
test_B = c(3,9,0,0)
)