2014-09-24 4 views
0

저는 커뮤니티에 새로운 것이고, 저는 또한 r입니다. 당신이 rep.sw 있습니다 "sw""rep" 아래에있는 값의 일부를 볼 경우에 따라서데이터 세트를 작성하는 경우

brettcontrol <- data.frame(rep.sw=c(NA,"sw","rep","sw"), RT=c(1:4)) 
brettcontrol 

    rep.sw RT 
1 <NA> 1 
2  sw 2 
3 rep 3 
4  sw 4 

: 여기 내 데이터 세트의 예 부분입니다. 내가 무엇을하려하는지는 if rep.sw = 'sw' then...라고하는 if 문을 작성하여 sw이라는 데이터 프레임에 모든 값을 넣고 rep.sw = "rep" 값이 값을 rep이라는 데이터 프레임에 넣으면됩니다.

도움이 될 것입니다. :)

모든 최고의, 브렛

편집 : 나는 DMT 제안하고 완벽하게 작동 무엇을했다! 이후 나는 방금 na.omit (sw) 명령을 사용하여 각 그룹에 대해 평균과 SD를 실행할 수있었습니다! 도와 주신 모든 분들께 감사드립니다! 결과 dataframes의 형태 (그들은 단지 하나의 열있을거야? 아니면 이미 존재?의 여부)하지만 여기에 값이 자상하고 담당자가

sw<-brettcontrol$RT[brettcontrol$rep.sw=="sw"] 
rep<-brettcontrol$RT[brettcontrol$rep.sw=="rep"] 

을 원하는 얻을 수있는 하나의 방법

+1

왜 if 문? 당신은 단지 하나의 단계에서'rep.sw'의 특정 값을 기반으로 데이터 프레임을 서브 세트 할 수 있습니다. – rawr

+3

@rawr에서 제시 하듯이,'sw <- brettcontrol [brettcontrol $ rep.sw == "sw" ]'또는'sw <- subset (brettcontrol, rep.sw == "sw")'- http://statmethods.net/management/subset.html – thelatemail

+0

같은 튜토리얼 사이트를 읽는 것이 좋습니다. 내 부분에 대해서는 무지했다. 나를 똑바로 세워 줘서 고마워. :) – y3trgfhsfgr

답변

2

확실하지 벡터를 자유롭게 데이터 프레임으로 변환하거나 사용하십시오.

+0

thelatemail는 4 초를 얻었다! 광산은 $ RT를 추가하여 특별히 그 값을 끌어옵니다. – DMT

1

list2env으로 시도하십시오.

두 개의 새로운 데이터 프레임 repsw을 글로벌 환경에 할당하고 NA는 split에서 제거됩니다.

> ls() 
# [1] "brettcontrol" 
> list2env(split(brettcontrol[-1], brettcontrol$rep.sw), .GlobalEnv) 
> ls() 
# [1] "brettcontrol" "rep"   "sw"   
> rep 
# RT 
# 3 3 
> sw 
# RT 
# 2 2 
# 4 4 
0

시도 :

swdf = data.frame(brettcontrol[brettcontrol$rep.sw=="sw",][,-1]) 
names(swdf) = 'sw_RT' 
repdf = data.frame(brettcontrol[brettcontrol$rep.sw=="rep",][,-1]) 
names(repdf) = 'rep_RT' 

> swdf 
    sw_RT 
1 NA 
2  2 
3  4 

> repdf 
    rep_RT 
1  NA 
2  3 
관련 문제