我正在开发一个数据集,人们必须在这里填充两天的活动。
调查问卷1旨在捕获第1天,第2天调查问卷2。 但是一些受访者在调查问卷1的第1天和第1天填写了第2天。
基本上我想要的是重新排列和合并(或合并和重新排列)数据,以便为每个受访者提供第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有一个简单的解决方案来重新排列数据帧。
任何解决方案?
答案 0 :(得分:2)
您不需要public int selectSong()
{
Scanner menu = new Scanner(System.in);
for (int i=0;i<logicalSize;i++){
System.out.println("[" + i + "] Title: " + songs[i].getName() + " Artist: " + songs[i].getArtist());
}
System.out.println("Select a song by entering its song number (0, 1, 2...).");
int songChoice = menu.nextInt();
return songChoice;
}
,而dplyr
不适合此工作。只需merge
您的数据集,然后对它们进行排序。
rbind