안녕하세요 여러분과 새해 복 많이 받으시는 분 data.table
이 (는) 각 그룹 별 선택에 따라 실행 된 업데이트를 처리 할 수 있는지 궁금합니다. 업데이트 내 및 내림차순
R) a=data.table(x=c("a","a","b","b","c","c"),y=c(1,2,3,3,2,1))
R) a
x y
1: a 1
2: a 2
3: b 3
4: b 3
5: c 2
6: c 1
내가 j
에서 선택을해야하는 각 별 그룹 내 조건에 업데이트 할,하지만이 i
것 (선택)의 이상이면
R) a[,c:=ifelse(y==max(y),"yes","no"),by=x]
R) a
x y c
1: a 1 no
2: a 2 yes
3: b 3 yes
4: b 3 yes
5: c 2 yes
6: c 1 no
나는 DT[drop="x,y,z"]
을 할 수 있도록, data.table
에, 드롭 인수를받을 예정이다, 나는 그것이 훨씬 더 빨리
두 번째 질문이있을 거라고 생각 a[y==max(y),c:="yes",by=x,within.by=TRUE]
같은 옵션 뭔가를 사용하여 동일한 작업을 수행 할 수 본질적으로 DT[,':='(x=NULL,y=NULL,z=NULL)]
'ifelse'를 사용하지 마십시오. 'a [, c : = y == max (y), by = x]'는 더 빠릅니다. – Roland
충분하지만 2 줄이 필요합니다. – statquant
두 줄은 필요 없습니다 :'a [, c : = c ("no", "yes") [(y == max (y)) + 1], by = x]'. –