I have a 데이터 프레임을 " 불렀으매 newprice"; (아래 참조), I want to 변경하십시오 열 이름을 내 프로그램을 R.
> newprice
Chang. Chang. Chang.
1 100 36 136
2 120 -33 87
3 150 14 164
사실 이게 키워봤지 하고.
names(newprice)[1]<-paste("premium")
names(newprice)[2]<-paste("change")
names(newprice)[3]<-paste("newprice")
나는 내가 원하는 것은 이 때문에 각 루프를 동일팔레트에 열 이름을 확인할 수 있듯이 다를 수 있습니다.
이 때 나는 내 프로그램에 R 은 이를 통해 출력입니다 붙여넣습니다 콘솔입니다 봐요.
> names(newprice)[1]<-paste(“premium”)
Error: unexpected input in "names(newprice)[1]<-paste(“"
> names(newprice)[2]<-paste(“change”)
Error: unexpected input in "names(newprice)[2]<-paste(“"
> names(newprice)[3]<-paste(“newpremium”)
Error: unexpected input in "names(newprice)[3]<-paste(“"
나는 '예' c 'c () 를 사용하여 기능 똑같이 했다 (premium" ";)' 대신 ' ()' 기능을 하지만 붙여넣습니다 아니요로 얻지 못했다.
누군가 이 그림 돕는다구요 수 있다고요?
'콜나미스 ()' 기능을 사용할 수 있습니다.
R> X <- data.frame(bad=1:3, worse=rnorm(3))
R> X
bad worse
1 1 -2.440467
2 2 1.320113
3 3 -0.306639
R> colnames(X) <- c("good", "better")
R> X
good better
1 1 -2.440467
2 2 1.320113
3 3 -0.306639
서브셋 수도 있습니다.
R> colnames(X)[2] <- "superduper"
내가 이:
colnames(dataframe)[which(names(dataframe) == "columnName")] <- "newColumnName"
이 오류는 " smart-quotes"; (# 39 라는 they& 무엇이든 간에, re). # 39 의 교훈을 슬라이드에서는 ", & # 39 에 쓰지 않고, don& editor& 코드에서 # 39;;; 따옴표 변환하는 smart-quotes".
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
또한, 't need 붙여넣습니다 don& # 39 (premium" ";)' ('는' 를 호출하는 붙여넣습니다 예비형) 와 it& # 39 의 좋은 방법이 동일팔레트에 주위에 공백을 < 혼동을 피하기 위해 '-' (예를 들어, 'x < 10;; - -; if (x< - 3) " hi"; 다른 bye" ";; "x").
이를 위해서는 '' 기능을 사용하여 새로운 권장됨 운행에서어떠한 세나미스. 지켜보리니 세나미스 '?'. 이로 인해 이후 새 복제본이므로 다다드프라임 '반드시' 결과 ',' 만약 이것이 다다드프라임 할당하십시오 본래의 의도를.
data_frame <- setNames(data_frame, c("premium","change","newprice"))
R 의 최신 버전을 사용할 경우 몇 가지 방법 '경고' 콜나미스 너회가 부여하느뇨 제안한 바 있는 분입니다.
했다면 '대신' 기능을 사용할 수 있습니다 'a' 데이타스터블 데이타스터블 세나미스 ',' 열 수 있는 단일 특정 이름이나 수정하십시오 열 이름을 by reference:
setnames(data_table, "old-name", "new-name")
난 이미 이 같은 문제 및 코드 부분을 협력했습니다 아웃해야 for me.
names(data)[names(data) == "oldVariableName"] <- "newVariableName"
요컨대 이 코드에 다음과 같습니다.
'이름 (데이터)' 로 이름을 다테프라임 모든 것 ('데이터')
' [이름 (데이터) = 올드버리이블나미]' 추출됩니다 변수 이름 ('올드버리이블나미') '와' < newVariableName";; - " color_name renamed 가져올 새로운 변수 이름.
한 번에 알 수 없는 모두이지만 변경하십시오 할 경우 여러 가지 열 때 열 이름을 '만' 와 '이전' 기능을 %in% 연산자입니다 콜나미스 사용할 수 있습니다. 예:
df = data.frame(bad=1:3, worse=rnorm(3), worst=LETTERS[1:3])
bad worse worst
1 1 -0.77915455 A
2 2 0.06717385 B
3 3 -0.02827242 C
이제 변경할 bad" "; 및 " worst"; " 위해 good"; 그리고 best" ";). 사용할 수 있습니다.
colnames(df)[which(colnames(df) %in% c("bad","worst") )] <- c("good","best")
그 결과
good worse best
1 1 -0.6010363 A
2 2 0.7336155 B
3 3 0.9435469 C
그냥 확장 및 조금 해결하십시오 스콧 윌슨 대답.
작업의 속도를 작성되지는 않습니다 '을' 의 메모리 사용량을 세나미스 작성되지는 수 없지만 더 효율적으로 사용할 수 있기 때문에 열 이름을 업데이트뿐 참조별로. 이 추적할 수 있는 '주소' 기능, 아래 참조.
<! - 언어: >, r -!
library(data.table)
set.seed(123)
n = 1e8
df = data.frame(bad=sample(1:3, n, TRUE), worse=rnorm(n))
address(df)
#[1] "0x208f9f00"
colnames(df) <- c("good", "better")
address(df)
#[1] "0x208fa1d8"
rm(df)
dt = data.table(bad=sample(1:3, n, TRUE), worse=rnorm(n))
address(dt)
#[1] "0x535c830"
setnames(dt, c("good", "better"))
address(dt)
#[1] "0x535c830"
rm(dt)
그래서 이 번호요 대신 사용할 경우 메모리에 제한값 타격 방법을 고려해 볼 수 있습니다.
몇 가지 () '와' 옵션 '드프리르 이름 바꾸기 드프리르 선택 ()'.
library(dplyr)
mtcars %>%
tibble::rownames_to_column('car_model') %>% # convert rowname to a column. tibble must be installed.
select(car_model, est_mpg = mpg, horse_power = hp, everything()) %>% # rename specific columns and reorder
rename(weight = wt, cylinders = cyl) %>% # another option for renaming specific columns that keeps everything by default
head(2)
car_model est_mpg horse_power cylinders disp drat weight qsec vs am gear carb
1 Mazda RX4 21 110 6 160 3.9 2.620 16.46 0 1 4 4
2 Mazda RX4 Wag 21 110 6 160 3.9 2.875 17.02 0 1 4 4
또한 3 가지의 다양한 범위지정 드프리르 이름 바꾸기 ':' () 열 이름, '모든' dplyr::rename_all () '및' 조건부 dplyr::rename_if () '을 겨냥한 dplyr::rename_at ()' 라는 선택을 위한 열 이름을 열. 다음 예제에서는 밑줄로 변환하여 덮어씁니다 공간 및 기간을 모두 소문자로:
iris %>%
rename_all(~gsub("\\s+|\\.", "_", .)) %>%
rename_all(tolower) %>%
head(2)
sepal_length sepal_width petal_length petal_width species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
'dplyr::select_all 비슷한 방식으로 ()' 에서도 사용할 수 있습니다.
iris %>%
select_all(~gsub("\\s+|\\.", "_", .)) %>%
select_all(tolower) %>%
head(2)
sepal_length sepal_width petal_length petal_width species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
이 도움이 될 수 있습니다.
rename.columns=function(df,changelist){
#renames columns of a dataframe
for(i in 1:length(names(df))){
if(length(changelist[[names(df)[i]]])>0){
names(df)[i]= changelist[[names(df)[i]]]
}
}
df
}
# Specify new dataframe
df=rename.columns(df,list(old.column='new.column.name'))