Microsoft Open R 3.3에서 행렬에 데이터베이스 쿼리의 행을 복사 (데이터 프레임 반환) 할 수 있습니까? 요소별로 할 수 있다는 것을 알고 있지만 한 번에 한 행을 복사 할 수 있어야합니다. 그래도 할 수 없습니다 :데이터 프레임의 행을 R의 행렬로 복사하는 방법은 무엇입니까?
(F)를 as.matrix하는 F 변환> m = matrix(0, nrow=2, ncol=3)
> dim(m)
[1] 2 3
> dim(m[1,])
NULL
> f = dbGetQuery("SELECT id, name, age FROM users")
> dim(f)
[1] 300 3
> dim(f[1,])
[1] 1 3
> m[1,] = f[1,]
> m[1,]
Error in m[1, ] : incorrect number of dimensions
> dim(m)
NULL
> m[1,] = f[1,]
Error in m[1, ] = f[1, ] :
incorrect number of subscripts on matrix
도움이되지 않습니다.
"1 3"대신 dim (m [1,])이 "NULL"인 이유는 무엇입니까?
왜 m [1,] = f [1,]은 m의 데이터 구조를 처음으로 망가 뜨 렸지만 (dim (m)을 NULL로 변경), 두 번째로 오류를보고하지 않습니다.
데이터 프레임 행에 다른 유형이 포함될 수 있지만 행렬 행에는 사용할 수 없다고 생각됩니다. 프레임의 한 열은 문자 데이터이고 다른 열은 정수입니다.
m [1,]은 숫자 벡터입니다. 차원을 유지하려면 '?'[ ''를 읽고'drop '인수를 사용하십시오. 구조는 "난파되지 않았다". 당신은 단순히 출력을 오해하고 있습니다. –
구조가 내부적으로 손실 되었기 때문에 구조가 엉망이라고 말합니다. dim (m)은 그 할당 이전에는 아니지만 NULL을 반환합니다. 해당 정보를 질문에 추가하려면 지금 편집하십시오. –
'f'가 지금까지 제공되는 증거로부터 나온 데이터 프레임이라는 것을 우리는 실제로 알지 못합니다. 'dput (f [1,]')의 결과를 제공해야한다. –