다음과 같이 data.frame에 새 열을 만들고 싶습니다.
데이터 설명 :
`'data.frame': 20 obs. of 3 variables:
$ gvkey : int 1004 1004 1004 1004 1004 1004 1004 1004 1004 1004 ...
$ DEF : int 0 0 0 0 0 0 0 0 0 0 ...
$ FittedRobustRatio: num 0.549 0.532 0.519 0.539 0.531 ...`
내가 작성했지만 작동하지 않는 기능 :
fun.mark <- function(x,y){
if (x==0) { y[y>0.60] <- "Del"
} else (x==1) {
y[y<0.45] <- "Del2"}}
NewDataFrame <- ddply(ShorterData,~gvkey,transform,Fitcorr=fun.mark(DEF, FittedRobustRatio))
그래서 기본적으로 내가 원하는 것은 0이고 FittedRobustRatio> 0.60이면 DEF 열을 살펴보고 값을 "Del"로 바꾸고 DEF 열이 1이면 (열에 0 또는 1 값만 있음) FittedRobustRatio 열을 살펴 보는 것입니다. <0.45 인 값을 예를 들어 "Del2"로 바꿉니다. 감사.
이를 위해 일반적으로 ifelse 명령을 중첩합니다. ifelse는 다음과 같이 설정합니다.
ifelse(definition e.g. a>b, gets "x" if definition met, gets "y" if definition not met)
그래서 이것은 작동합니다 ...
data.frame$new.column <- ifelse (
data.frame$DEF=="0"&data.frame$FittedRobustRatio>0.6, "Del", ifelse(
data.frame$DEF=="1"&data.frame$FittedRobustRatio<0.45, "Del2", "none"))
재현 가능한 데이터 프레임을 제공하지 않았기 때문에 나는 이것을 테스트 할 수 없으므로 틀릴 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다