2013-08-11 4 views
1

4000 값을 포함하는 df이라는 데이터 프레임이 있습니다. 나는 1000 열 단위로 list라는 데이터 프레임에 1000 열 숫자의 목록을 가지고 있습니다. 데이터 프레임의 list에있는 숫자로 행을 유지하고 나머지를 던져 넣을 수있는 방법은 무엇입니까? 난 이미 사용하여 시도 :데이터 프레임을 기반으로 데이터 프레임의 열 유지

listv <- as.vector(list) 

을 다음

dfnew <- df[,listv] 

를 사용하지만 난 당신이 행과 부분 집합 열을 혼합하고 오류를

Error in .subset(x, j) : invalid subscript type 'list' 
+0

아마도'df [list [, 1],]'과 같은 뜻입니까? – A5C1D2H2I1M1N2O1R2T1

+0

코드 예제, 시도한 내용, 결과물 및 원하는 내용을 알려주십시오. – James

+1

downvoter : 네, 기본적인 질문입니다. 그리고 그것은 잘 말한 질문은 아니지만, 그들이 시도한 것과 그들이 가진 오류를 보여주었습니다. 투표가 정확히 이루어 졌는지 확신 할 수 없습니다. OP에게, 추가 질문에서 재현 가능한 예를 (제 대답에서했던 것처럼) 공유하십시오. – A5C1D2H2I1M1N2O1R2T1

답변

3

를 얻을. 여기에 최소한의 예입니다 : 당신이 생각했던대로

df <- data.frame(matrix(1:21, ncol = 3)) 
df 
# X1 X2 X3 
# 1 1 8 15 
# 2 2 9 16 
# 3 3 10 17 
# 4 4 11 18 
# 5 5 12 19 
# 6 6 13 20 
# 7 7 14 21 
list <- data.frame(V1 = c(1, 4, 6)) 
list 
# V1 
# 1 1 
# 2 4 
# 3 6 
df[list[, 1], ] 
# X1 X2 X3 
# 1 1 8 15 
# 4 4 11 18 
# 6 6 13 20 
df[unlist(list), ] 
# X1 X2 X3 
# 1 1 8 15 
# 4 4 11 18 
# 6 6 13 20 

참고 또한 as.vector(list)는 벡터를 생성하지 않습니다. 여기에 unlist이 필요합니다 (마지막 예제에서 사용한대로).

관련 문제