데이터 프레임의 행을 벡터로 변환
데이터 프레임의 행에서 벡터를 만들고 싶습니다.하지만 행 이름과 열 이름은 원하지 않습니다.몇 가지 시도를 해봤는데,하지만 운이 없었습니다.
다음은 제 데이터 프레임입니다.
> df <- data.frame(a=c(1,2,4,2),b=c(2,6,2,1),c=c(2.6,8.2,7.5,3))
> df
a b c
1 1 2 2.6
2 2 6 8.2
3 4 2 7.5
4 2 1 3.0
노력했습니다.
> newV <- as.vector(df[1,])
> newV
a b c
1 1 2 2.6
하지만 저는 이런 것을 정말 원합니다.
> newV <- c( 1,2,2.6)
> newV
[1] 1.0 2.0 2.6
데이터 프레임에서 단일 행을 추출하면 단일 행 데이터 프레임이 생성됩니다.숫자 벡터로 변환합니다.
as.numeric(df[1,])
@Roland가 제안하는 것처럼,unlist(df[1,])이름을 삭제하지 않고 1행 데이터 프레임을 숫자 벡터로 변환합니다.그러므로unname(unlist(df[1,]))같은 결과를 얻을 수 있는 또 다른 방법입니다.
@Josh가 아래에 설명한 것처럼 완전하지 않은 숫자(알파벳, 인자, 혼합...) 데이터 프레임이 있는 경우 다음이 필요합니다.as.character(df[1,])대신.
추천합니다unlist그 이름들을 간직하고 있습니다.
unlist(df[1,])
a b c
1.0 2.0 2.6
is.vector(unlist(df[1,]))
[1] TRUE
명명된 벡터를 원하지 않는 경우:
unname(unlist(df[1,]))
[1] 1.0 2.0 2.6
여기 있습니다.dplyr기준 옵션:
newV = df %>% slice(1) %>% unlist(use.names = FALSE)
# or slightly different:
newV = df %>% slice(1) %>% unlist() %>% unname()
숫자로 변경하지 않으려면 이 방법을 사용해 보십시오.
> as.vector(t(df)[,1])
[1] 1.0 2.0 2.6
행에 요인이 포함된 경우 주의해야 합니다.다음은 예입니다.
df_1 = data.frame(V1 = factor(11:15),
V2 = 21:25)
df_1[1,] %>% as.numeric() # you expect 11 21 but it returns
[1] 1 21
다음은 다른 예입니다(기본적으로 data.frame()이 문자를 요인으로 변환).
df_2 = data.frame(V1 = letters[1:5],
V2 = 1:5)
df_2[3,] %>% as.numeric() # you expect to obtain c 3 but it returns
[1] 3 3
df_2[3,] %>% as.character() # this won't work neither
[1] "3" "3"
이 동작을 방지하려면 인자를 추출하기 전에 먼저 처리해야 합니다.
df_1$V1 = df_1$V1 %>% as.character() %>% as.numeric()
df_2$V1 = df_2$V1 %>% as.character()
df_1[1,] %>% as.numeric()
[1] 11 21
df_2[3,] %>% as.character()
[1] "c" "3"
데이터 프레임의 열은 이미 벡터이므로 데이터 프레임을 끌어내기만 하면 됩니다.원하는 열은 쉼표 앞이 아니라 쉼표 뒤에 배치합니다.
> newV <- df[,1]
> newV
[1] 1 2 4 2
만약 당신이 실제로 행을 원한다면, 벤이 말한 대로 하고, 앞으로 단어를 올바르게 사용하세요.
언급URL : https://stackoverflow.com/questions/14484728/convert-a-row-of-a-data-frame-to-vector
'programing' 카테고리의 다른 글
| Excel에 있는 경우 중위수에 필요한 도움말 (0) | 2023.07.08 |
|---|---|
| '그리고' (boolean) vs '&' (bitwise) - 목록과 numpy 배열의 동작이 왜 다른가요? (0) | 2023.07.08 |
| SQL Server 데이터베이스의 테이블 수 계산 (0) | 2023.07.08 |
| 오버로드된 메서드에 대해 서로 다른 반품 유형을 가질 수 있습니까? (0) | 2023.07.08 |
| 문자열의 문자가 문자인지 확인하려면 어떻게 해야 합니까?(파이썬) (0) | 2023.07.08 |