data.frame에서 data.frame으로 단일 열을 추출하려면 어떻게 해야 합니까?
데이터가 있다고 가정합니다.프레임:
df <- data.frame(A=c(10,20,30),B=c(11,22,33), C=c(111,222,333))
A B C
1 10 11 111
2 20 22 222
3 30 33 333
열을 두 개 이상 선택하면 data.frame:
x <- df[,1:2]
A B
1 10 11
2 20 22
3 30 33
이것이 제가 원하는 것입니다.그러나 열을 하나만 선택하면 숫자 벡터가 나타납니다.
x <- df[,1]
[1] 1 2 3
둘 이상의 열에 대한 결과를 변경하지 않는 .data.frame()으로 사용하려고 했습니다.한 열의 경우 data.frame을 반환하지만 열 이름은 유지하지 않습니다.
x <- as.data.frame(df[,1])
df[, 1]
1 1
2 2
3 3
나는 그것이 왜 이렇게 행동하는지 이해할 수 없습니다.제 생각에는 열을 하나 두 개 또는 열 개 추출해도 차이가 없을 것 같습니다.IT는 항상 벡터(또는 행렬)를 반환하거나 항상 data.frame(정확한 이름)을 반환해야 합니다.제가 무엇을 빠뜨리고 있나요?감사합니다!
참고: 행렬과 data.frame은 R에서 기본적으로 다른 데이터 유형이며 dplyr와 다르게 작동할 수 있기 때문에 행렬에 대한 질문을 중복한 것이 아닙니다.data.frame에서는 작동하지만 행렬에서는 작동하지 않는 답변이 몇 가지 있습니다.
사용하다drop=FALSE
> x <- df[,1, drop=FALSE]
> x
A
1 10
2 20
3 30
설명서( 참조)에서 다음을 확인할 수 있습니다.
떨어뜨리면 =TRUE 결과는 가능한 가장 낮은 차원으로 강요됩니다.
생략합니다.,
:
x <- df[1]
A
1 10
2 20
3 30
의 도움말 페이지에서?"["
:
[에 의한 인덱싱은 원자 벡터와 유사하며 지정된 요소의 목록을 선택합니다.
데이터 프레임은 목록입니다.열은 해당 요소입니다.
사용할 수도 있습니다.subset
:
subset(df, select = 1) # by index
subset(df, select = A) # by name
댓글에 언급된 것처럼 사용할 수도 있습니다.dplyr::select
, 그러나 변수 이름을 인용할 필요는 없습니다.
library(dplyr)
# by name
df %>%
select(A)
# by index
df %>%
select(1)
언급URL : https://stackoverflow.com/questions/21025609/how-do-i-extract-a-single-column-from-a-data-frame-as-a-data-frame
'programing' 카테고리의 다른 글
파이썬 클래스에서 메소드를 주문하는 좋은 방법은 무엇입니까? (0) | 2023.10.23 |
---|---|
Spark DataFrame에 빈 열 추가 (0) | 2023.10.23 |
집계 쿼리에서 특정 조건을 가진 행 수 계산 (0) | 2023.10.23 |
Amazon LightSail 403 루트 계정 오류 (0) | 2023.10.23 |
SQL(ORACLE)의 악센트를 무시하는 문자열 비교 (0) | 2023.10.23 |