data.frames 목록을 스택 싶지만 열의 데이터 형식이 다를 수 있습니다. 작전을 가장 낮은 공통 분모 (나의 경우에는 보통 character
)로 강요하고 싶습니다.다른 데이터 형식의 bind_rows
이 스태킹은 data.frames의 거의 모든 목록을 허용하는 package function에서 발생합니다. ds_a$x
을 bind_rows()
전에 문자에 강제로 적용하는 것은 현실적으로 불가능합니다.
ds_a <- data.frame(
x = 1:6,
stringsAsFactors = FALSE
)
ds_b <- data.frame(
x = c("z1", "z2"),
stringsAsFactors = FALSE
)
# These four implementations throw:
# Error: Can not automatically convert from integer to character in column "x".
ds_1 <- dplyr::bind_rows(ds_a, ds_b)
ds_2 <- dplyr::bind_rows(ds_b, ds_a)
ds_3 <- dplyr::bind_rows(list(ds_a, ds_b))
ds_4 <- dplyr::union_all(ds_a, ds_b)
내가 단일 문자 벡터와 data.frame로 출력을하고 싶습니다 :
x
1 1
2 2
3 3
4 4
5 5
6 6
7 z1
8 z2
나는 (레드 캡) 데이터베이스에서 메타 데이터를 사용하는 몇 가지 장기적인 계획을 가지고 강요에 영향을 줄 수는 있지만, 저는 스태킹 작업을위한 단기적인 일반적인 해결책이 있기를 바라고 있습니다.
에서
rbindlist
를 사용할 수 있습니다. 일괄 처리 된 API 호출을 함께 바인딩하려는 것으로 가정하므로 모두 동일한 이름을 가져야합니다. – Benjamin나는 보통 이런 상황에서 인자로 변환하지만 모든 컬럼을 인자 컬럼으로 변환하고 다시 변환하면 속도에 어떤 영향을 미치는지 확신 할 수 없다. – Hao