dplyr
을 사용하고 있는데 사랑 스럽지만 이상한 행동을 발견했습니다. 다른 소스의 일부 데이터를 정리하고 데이터 프레임에 모으는 중입니다. 그 중 일부는 dplyr
과 함께 더 많은 청소가 필요하고 tbl
개체가되었습니다. 다른 부분은 더 간단했고, 나는 data.frame
개체를 가졌습니다. 나는 rbind
을 함께 사용하고, 분석 할 때 dplyr
필터 기능을 사용하려고하면 제대로 작동하지 않습니다. 예 :rbind tbl 및 df가 필터를 사용하여 오류를 발생시킵니다.
df1 <- data.frame(
group = factor(rep(c("C", "G"), 5)),
value = 1:10)
df1 <- df1 %>% group_by(group) #df1 is now tbl
df2 <- data.frame(
group = factor(rep("G", 10)),
value = 11:20)
df3 <- rbind(df1, df2) #df2 is data.frame
df3 %>% filter(group == "C") #returns filtered rows in df1 and all rows of df2
Source: local data frame [15 x 2]
Groups: group
group value
1 C 1
2 C 3
3 C 5
4 C 7
5 C 9
6 G 11
7 G 12
8 G 13
9 G 14
10 G 15
11 G 16
12 G 17
13 G 18
14 G 19
15 G 20
내가 df3[df3$group == "C", ]
일 경우 제대로 작동합니다. 곤충?
'df3 %> % ungroup() %> % 필터 (그룹 == "C")'또는'as.data.frame (df3) %> % 필터 (그룹 == "C")'를 시도하십시오. – akrun
@akrun 예, 둘 다 작동합니다! –
'df3 <- rbind (d1, as.tbl (df2))'결과가 같은 문제이므로 'df2'가 데이터 프레임이 아닙니다. – Henrik