다음과 같은 244 데이터 프레임 목록이 있습니다. 목록의 이름은 datas
입니다.for 루프 내에서 ifelse 내부 mutate를 사용하여 오류가 발생했습니다.
datas[[1]]
year sal
2000 10000
2000 15000
2005 10000
2005 9000
2005 12000
2010 15000
2010 12000
2010 20000
2013 25000
2013 15000
2015 20000
나는 여러 해 동안 다른 값을 곱하여, fix.sal
라는 새 열을하고 싶습니다. 예를 들어 2000과 동일한 행에있는 sal
에 2를 곱합니다. 동일한 방식으로 sal
값에 곱한 값은 2005 년에 1.8, 2010에 1.5, 2013에 대해 1.2, 2015에 대해 1입니다. 따라서 결과 다음과 같이해야한다 : 나는 어떤 패키지 dplyr
에 대한 mutate
내부 ifelse
를 사용하여이 작업을 수행하는 데 성공
Year sal fix.sal
2000 10000 20000
2000 15000 30000
2005 10000 18000
2005 9000 16200
2005 12000 21600
2010 15000 22500
2010 12000 18000
2010 20000 30000
2013 25000 30000
2013 15000 18000
2015 20000 20000
.
library(dplyr)
datas[[1]]<-mutate(datas[[1]], fix.sal=
ifelse(datas[[1]]$Year==2000,datas[[1]]$sal*2,
ifelse(datas[[1]]$Year==2005,datas[[1]]$sal*1.8,
ifelse(datas[[1]]$Year==2010,datas[[1]]$sal*1.5,
ifelse(datas[[1]]$Year==2013,datas[[1]]$sal*1.2,
datas[[1]]$sal*1)))))
는하지만 목록 datas
에 244 개 데이터 프레임에이 작업을 수행해야합니다.
그래서 저는 for 루프를 사용하여이 작업을 시도했습니다.
for(i in 1:244){
datas[[i]]<-mutate(datas[[i]], fix.sal=
ifelse(datas[[i]]$Year==2000,datas[[i]]$sal*2,
ifelse(datas[[i]]$Year==2005,datas[[i]]$sal*1.8,
ifelse(datas[[i]]$Year==2010,datas[[i]]$sal*1.5,
ifelse(datas[[i]]$Year==2013,datas[[i]]$sal*1.2,
datas[[i]]$sal*1)))))
}
그런 다음 오류가 발생했습니다.
Error: invalid subscript type 'integer'
어떻게 해결할 수 있습니까?
모든 의견을 크게 환영합니다! :)
고맙습니다 ...! 나는 그것을 해결했다 :) – min