데이터 프레임 (일명 df)이 있고 열이 다음과 같은 특정 조건을 충족 할 때 열 가격을 곱하고 싶습니다.
df $ US == '미국 외' `.
내 코드는 다음과 같습니다.
df$Price <- df$Price[df$US=='non US']*0.85
위의 코드를 실행하면이 오류가 발생합니다.
Error in `$<-.data.frame`(`*tip*`, CompPrice, value = c(140, 114.117647058824, :
replacement has 142 rows, data has 400
오류가 발생한 이유는 이해하지만 조건을 충족하는 행만 수정하는 방법을 모르겠습니다.
미리 감사드립니다.
우리는에 논리적 조건을 지정해야합니다 lhs
의 <-
전체 '가격'열을 포함하는 좌로
df$Price[df$US=='non US'] <- df$Price[df$US=='non US']*0.85
동일한 계산을 반복적으로 수행하지 않으려면 할당 전에 객체를 생성하는 것이 좋습니다.
i1 <- df$US == 'non US'
df$Price[i1] <- df$Price[i1] * 0.85
를 사용 data.table
하면이 구문이 더 간단합니다.
library(data.table)
setDT(df)[US == 'non US', Price := Price * 0.85]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다