[r] data.frame 또는 행렬의 행 합계
행이 관측 값이고 열이 유전 적 마커 인 매우 큰 데이터 프레임이 있습니다. R을 사용하여 각 관찰에 대해 선택한 열 수의 합계를 포함하는 새 열을 만들고 싶습니다.
200 개의 열과 100 개의 행이있는 경우 43에서 167까지의 열의 합계가있는 100 개의 행이있는 새 열을 만들고 싶습니다. 열에는 1 또는 0이 있습니다. 각 열의 합계를 포함하는 새 열 열, 나는 가장 유전적인 마커를 가진 개인을 분류 할 수있을 것입니다.
나는 그것이 다음과 비슷하다고 느낍니다.
data$new=sum(data$[,43:167])
답변
당신이 사용할 수있는 rowSums
rowSums(data)
당신이 원하는 것을 줄 것입니다.
답변
rowSums 함수 (Greg가 언급했듯이)는 원하는 작업을 수행하지만 답변에서 부분 집합 화 기술을 혼합하고 있습니다. “[]”를 사용할 때 “$”를 사용하지 마십시오. 코드는 다음과 비슷해야합니다.
data$new <- rowSums( data[,43:167] )
합계 이외의 함수를 사용하려면 행이나 열에 일반 함수를 적용하려면? apply를 참조하십시오.
답변
나는 데이터 테이블의 모든 열에 대한 합계를 얻고 위의 솔루션을 구현하는 문제에 부딪히는 방법을 찾고자 여기에 왔습니다. 모든 열의 합계가있는 열을 추가하는 방법은 다음 cbind
함수를 사용합니다 .
cbind(data, total = rowSums(data))
이 방법 total
은 데이터에 열을 추가 하고 위의 솔루션을 사용하여 모든 열을 합산하려고 할 때 발생하는 정렬 문제를 방지합니다 (이 문제에 대한 설명은 아래 게시물 참조).