2016-09-28 2 views
0

의 출력을 보냅니다. 매우 큰 데이터 테이블에서 chisq.test를 수행하고 메인 테이블에 연결된 별도의 열로 출력을 보내려고합니다.메인 테이블에 조인 될 별도의 열로 R

altCount refCount 
    8  6 
    3  7 
    4  9 

내가 루프 chisq.test 및 전송 출력이 텍스트 파일을 분리하는 스크립트를 작성하지만 별도의 컬럼으로 보낼 수 없습니다처럼 내 테이블의 미니 버전 보인다. 다음과 같습니다 내가 파일을 얻고 출력으로 For loop R create and populate new column with output :

sink("output.txt", append=FALSE, split=FALSE) 
d <- data.frame(a = test1[,1], b = test1[,2]) 
d$newcolumn <- 0 
for(row in 1:nrow(d)){ 
    print(row) 
    print(chisq.test(c(d[row,1],d[row,2]))) 
    d$newcolumn[row] <- 3 
} 

내가에 비슷한 질문을 발견 : 내 스크립트입니다

data: c(d[row, 1], d[row, 2]) 
X-squared = 0.28571, df = 1, p-value = 0.593 

하지만 같은 출력보고 싶지 :

altCount refCount P-val 
    8  6 0.564 
    3  7 0.03 
    4  9 0.005 

따라서 기본적으로 동일한 표가 사용되지만 새 열은 p - 값

저는 매우 신입생 입니다. 내가 잘못하고있는 것을 상세히 설명해 주시겠습니까? 더 자세한 내용

답변

0

이 오류는 객체 i을 찾을 수 없음을 알려줍니다. 이것은 R이 충분히 잘 보이지 않는다는 의미는 아니며 변수 i이 존재하지 않는다는 것을 의미합니다. i이 있는지 확인해야합니다.

1에서 nrow(d) 사이의 숫자에 대한 for 루프는 각 루프의 값을 row에 할당합니다. 변수 row과 변수 i이 섞여있을 가능성이 큽니다. 제시 한 코드는 다음과 같이 작동해야합니다.

for(row in 1:nrow(d)){ 
    print(row) 
    print(chisq.test(c(d[row,1],d[row,2]))) 
    d$newcolumn[row] <- 3 
} 
+0

감사합니다. 당신 말이 맞아요, 제 코드가 작동하지만 정확하게 작동하는 방식이 아닙니다. 나는 나의 질문을 편집했다. –

관련 문제