나는 R에 다소 익숙하다. 그래서 나의 기본적인 질문을 용서해라.그룹 및 행마다 cca
전 데이터 세트 (358 개 사이트, 40 개의 비 생물 매개 변수, 100 종 관찰)에서 CCA를 수행합니다.
library(vegan)
env <- read.table("env.txt", header = TRUE, sep = "\t", dec = ",")
otu <- read.table(otu.txt", header = TRUE, sep = "\t", dec = ",")
cca <- cca(otu~., data=env)
cca.plot <- plot(cca, choices=c(1,2))
vif.cca(cca)
ccared <- cca(formula = otu ~EnvPar1,2,n, data = env)
ccared.plot <- plot(ccared, choices=c(1,2))
orditorp(ccared.plot, display="sites")
이 처음 숫자 샘플의 이름을 포함하는 최초의 열은 변수로 해석되었다 첫 번째 열 (에서 샘플 이름을 사용하지 않고 작동하므로 내가 통해 플롯에 사이트 이름을 추가하면 내가. 그 정보가없는 테이블을 사용 orditorp, 그것은 줄에 "row.name = n"을 부여합니다.) 그러나 샘플 이름을 사용하고 싶습니다.
envnames <- read.table("envwithnames.txt", header = TRUE, row.names=1, sep = "\t", dec = ",")
otunames <- read.table("otuwithnames.txt", header = TRUE, row.names=1, sep = "\t", dec = ",")
및 ENV/OTU/envnames/otunames의 조합 : 나는 row.names 샘플 이름 정보와 두 테이블에 = 1을 시도했다. CCA는 어떤 경우에 잘 작동하지만, 어떤 플롯 명령은
plot.ccarownames <- plot(cca(ccarownames, choices=c(1,2)))
Error in rowSums(X) : 'x' must be numeric
이 내 두 번째 문제는 그 연결되어 굴복 : 358 개 사이트 6 개 그룹 (4x60,2x59)로 그룹화됩니다. 완전한 행렬은이 정보를 여분의 열로 추정합니다. 행 이름 문제를 해결할 수 없었기 때문에 나는 어쨌든 명목상의 데이터에 더욱 집착했습니다. 원래의 행렬에는 생물학적 관측이 뒤 따르는 첫 번째 열 (샘플 이름, 숫자, 쉽게 명목으로 변형 될 수 있음)과 두 번째 열 (그룹 신원, 명목)이 있습니다. 내가 좋아하는 것이 무엇
은이합니다 : 그룹 당 사이트를 색칠 여섯 개 그룹을 포함
- CCA를.
- 하나의 그룹에 대한 데이터 만 포함하는 CCA (수동 입력없이 개별 입력 테이블 구성)
- 원래 샘플 이름을 사용하는 CCA 플롯.
도움을 주시면 감사하겠습니다. 정말로, 나는 어제 아침 이후로 붙어 있습니다 :/
"행 이름을 사용하면 무엇을 의미합니까?" 당신이 그들을 당신의 식탁으로 읽으면? 또는 모델에서 사용하는 경우? 이것은 불분명하다. 나는 또한 당신이 그룹에 대해 이야기하고있는 여분의 칼럼이나 CCA가이 경우 어떻게 "실패"하는지 정확히 알지 못합니다. [재현 가능한 예] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 만드는 시간을 가져주십시오. 또한 기본 패키지 밖에서 함수를 사용할 때로드중인 라이브러리를 명확하게하십시오. 우리가 당신과 같은 오류를 범할 수 있다면 우리는 더 많이 도울 수 있습니다. – MrFlick
** 채식 주의자 ** 개발자 중 한 명으로, 나는 이것이 어쩌면 반복적으로 어딘가에서 사용자 오류라고 자신있게 말할 수 있습니다. 비건 채식은 데이터 프레임에 적절하게 설정하면 행 이름을 사용합니다. 이들을 데이터 객체에 남겨두면,'cca()'가 작동하는 첫 번째 일은 as.matrix()를 통해 데이터를 행렬로 변환한다는 것입니다. 따라서 문자 행렬을 얻을 수 있습니다 데이터 프레임에 숫자가 아닌 정보가있는 경우 *. MrFlick이 말했듯이, 이것을 재현 할 수있는 재현 가능한 예제가 필요합니다. –
안녕하세요, 빠른 답변을 주셔서 감사합니다. 나는 elobarate해야한다 : 첫째로 나는 read.table (x, header = 1, sep/dec)을 사용했고, x는 숫자 샘플 이름을 가진 컬럼을 포함했다. 이 열은 변수로 해석되었고 cca는 엉망이되었습니다. read.table (x, header = 1, row.names = 1, sep/dec)을 시도했는데'rowSums (X) : 'x'는 숫자 여야 함 '메시지에서 Error를 얻었습니다. 내 초기 질문을 업데이트하지 않아. – nouse