0
을 transform
내에 사용하려고합니다.lapply, cbind, 변환 내에서 적용
그래서이 예상대로 작동합니다
dfX1 = data.frame(a = rpois(100, 10),
b = rpois(100, 10))
dfX2 = transform(dfX1, c = a %in% c(6, 7))
을하지만, 내가 좋아하는 뭔가를하려고하면
dfX3 = transform(dfX1,
c = apply(
do.call('cbind',
lapply(c(a, b),
function(x) x %in% c(6, 7))), 1, sum))
내가 이상한 결과를 얻을 :
> head(dfX3)
a b c
1 9 9 26
2 9 8 26
3 6 7 26
4 9 11 26
5 11 9 26
6 11 16 26
내 기대는 것입니다을 lapply
은 행렬로 강제 변환 될 벡터 목록을로 반환합니다.및 apply
은 행에 걸쳐 sum
함수를 적용합니다.
제가 누락 된 항목이 확실하지 않습니다.
인'C (A, B)'리스트'에 의해 (A, B)'문제를 해결할 것입니다. –
@VincentGuillemot 그렇습니다! 하지만 왜? – tchakravarty
'c (a, b)'는'a'의 값을 포함하고'b'의 값을 포함하는 벡터이기 때문입니다. 원하는 것은'a'와'b'에 함수를 적용하는 것이므로 목록이 필요합니다. –