2013-09-02 4 views
0

동일한 길이의 벡터를 반환하는 dataframe $ column1의 각 값에 함수를 적용하고 싶습니다. 조건은 조건이 적용될 경우 출력에 동일한 행의 dataframe $ column2 값을 포함해야합니다. 함수가 그래서 다른 벡터에서하지만 같은 인덱스 값을 반환하기 위해 적용 할 때 (의사) 코드에서vector_a [i] vector_b [i]에서 값을 반환하는 함수 적용에 sapply를 사용하는 방법

function <- "If (value of dataframe$column1[i] is something) {return(dataframe$column1[i])} else {return(dataframe$column2[i])} 

output_vector <- sapply(dataframe$column1, function, dataframe$column2) 

는 sapply 벡터의 인덱스를 기억 하는가?

ifelse()이 바로 이러한 작업을 수행하는 것입니다
+0

설정 예를 들어 데이터와 예상 답변을 제공하는 것이 좋습니다. 그것은 나를 도울 것입니다. 아마 그 질문은 다른 사람들에게 충분히 분명 할지라도. –

+0

sapply가 인덱스를 함수에 전달하지 않습니다. Marius가 지적했듯이, ifelse를위한 것입니다. – leif

답변

3

:

df = data.frame(col1=1:10, col2=21:30) 
output_vector = ifelse(df$col1 > 5, df$col1, df$col2) 
+0

@CptNemo'apply' 계열의 함수를 사용하고 싶다면 다음과 같이'ifelse' 문을 내장 할 수 있습니다.이 경우에는 그렇게하지 않아도됩니다 :'df $ col3 ifelse (i [1]> 5, i [1], i [2]))'- 적용 (df, –