0
我正在处理人们不得不填充活动两天的数据集。重新排列和合并基于天的序列数据集
问卷1被设计来捕捉1日和2日 问卷2但是,一些受访者在问卷填写2天的调查问卷1和1天2
所以基本上我想要的是重新安排和合并(或合并和重新排列)数据,以便为每位受访者提供第1天第1天和第2天。
seq1 = as.data.frame(rbind(c(1, 1, 1, 'a', 'a', 'b', 'c'),
c(2, 1, 1, 'a', 'a', 'b', 'd'),
c(3, 1, 2, 'c', 'd', 'b', 'a'),
c(4, 1, 2, 'c', 'a', 'b', 'e')))
colnames(seq1) <- c('id', 'quest', 'day', paste('act',1:4))
seq2 = as.data.frame(rbind(c(1, 2, 2, 'a', 'a', 'b', 'd'),
c(2, 2, 2, 'c', 'a', 'b', 'c'),
c(3, 2, 1, 'a', 'd', 'b', 'c'),
c(4, 2, 1, 'd', 'a', 'b', 'c')))
colnames(seq2) <- c('id', 'quest', 'day', paste('act',1:4))
# seq1
id quest day act 1 act 2 act 3 act 4
1 1 1 1 a a b c
2 2 1 1 a a b d
3 3 1 2 c d b a # Mistake here
4 4 1 2 c a b e # Mistake here
# seq 2
id quest day act 1 act 2 act 3 act 4
1 1 2 2 a a b d
2 2 2 2 c a b c
3 3 2 1 a d b c # Mistake here
4 4 2 1 d a b c # Mistake here
所以我想合并我的数据,以便将第1天和第2天彼此关注。
merge(seq1, seq2, by = 'id', suffixes = c('_day1', '_day2'))
我想有一个数据集看起来像这样,但有正确的重新安排的日子。
id quest_day1 day_day1 act 1_day1 act 2_day1 act 3_day1 act 4_day1 quest_day2 day_day2 act 1_day2 act 2_day2 act 3_day2 act 4_day2
1 1 1 1 a a b c 2 2 a a b d
2 2 1 1 a a b d 2 2 c a b c
3 3 1 2 c d b a 2 1 a d b c
4 4 1 2 c a b e 2 1 d a b c
我确信dplyr有一个简单的解决方案来重新安排数据帧。
任何解决方案?
您可能需要将所需的结果添加到问题 - 目前还不清楚您想要什么。 – eddi
如果您将示例更改为'paste0'而不是'paste',则您将拥有合法的R变量名称。 –