2014-07-11 4 views
0

해당 행의 요소에 특정 패턴이 들어 있는지 식별하는 기존 데이터 프레임에 열을 추가하려고합니다.문자열이 특정 패턴과 일치하면 1을 반환하는 데이터 프레임에 열을 추가하십시오.

transform() 기능을 사용하고 있습니다. iris 데이터 세트를 사용하여,

> head(iris) 
    Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
1   5.1   3.5   1.4   0.2 setosa 
2   4.9   3.0   1.4   0.2 setosa 
3   4.7   3.2   1.3   0.2 setosa 
4   4.6   3.1   1.5   0.2 setosa 
5   5.0   3.6   1.4   0.2 setosa 
6   5.4   3.9   1.7   0.4 setosa 

> tail(iris) 
    Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
145   6.7   3.3   5.7   2.5 virginica 
146   6.7   3.0   5.2   2.3 virginica 
147   6.3   2.5   5.0   1.9 virginica 
148   6.5   3.0   5.2   2.0 virginica 
149   6.2   3.4   5.4   2.3 virginica 
150   5.9   3.0   5.1   1.8 virginica 

내가하는 식별에 열을 추가 할 경우 문자열 saSpecies 끝. regex에서 .*(sa) 표현을 사용하여 올바른 문자열에 플래그를 지정할 수 있습니다.

나는 Speciessa0 그렇지 않은 경우로 끝나는 경우 1에 열을 채우는 않는 함수를 어떻게 만들 수 있을까요?

답변

3

에 대한

iris$check <- as.numeric(grepl(".*(sa)", iris$Species)) 

grepl 쉽게 as.numeric를 사용하여 1/0로 변환 할 수있는 논리적 인 벡터 (TRUE/FALSE)를 반환하는 방법. 또한

수 :

iris$check <- grepl(".*(sa)", iris$Species) + 0L 
관련 문제