“newprice”라는 데이터 프레임이 있고 (아래 참조) 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")
대신 함수를 사용하여 동등하게 시도 paste()
했지만 아무 소용이 없습니다.
누군가 나를 알아낼 수 있습니까?
답변
colnames()
기능을 사용하십시오 :
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"
답변
이 오류는 “스마트 따옴표”(또는 무엇이든)에 의해 발생합니다. 여기서의 교훈은 “따옴표를 스마트 인용 부호로 변환하는 ‘편집기’에 코드를 작성하지 마십시오”입니다.
names(newprice)[1]<-paste(“premium”) # error
names(newprice)[1]<-paste("premium") # works
또한 불필요하며 중복 paste("premium")
호출 을 피하기 위해 paste
공백을 두는 것이 좋습니다 <-
(예 🙂 x <- -10; if(x<-3) "hi" else "bye"; x
.
답변
그냥 시도 했습니까?
names(newprice)[1]<-"premium"
?
답변
이를 위해 권장되는 새로운 방법은 setNames
기능 을 사용하는 것입니다. 참조하십시오
?setNames
. 이렇게하면의 새 복사본이 만들어 지므로 의도 한 경우 data.frame
결과를 원본에 할당해야합니다 data.frame
.
data_frame <- setNames(data_frame, c("premium","change","newprice"))
최신 버전의 R은 colnames
이전 답변에서 제안한 방식 중 일부 를 사용하면 경고를 표시합니다 .
이것이 data.table
대신에 data.table
함수를 사용하면 setnames
특정 열 이름이나 단일 열 이름 을 참조로 수정할 수 있습니다 .
setnames(data_table, "old-name", "new-name")
답변
나는 같은 문제가 있었고이 코드는 나를 위해 일했다.
names(data)[names(data) == "oldVariableName"] <- "newVariableName"
간단히 말해서이 코드는 다음을 수행합니다.
names(data)
데이터 프레임의 모든 이름을 살펴 봅니다 ( data
)
[names(data) == oldVariableName]
이름을 바꾸려는 변수 이름 ( oldVariableName
)을 추출하고 <- "newVariableName"
새 변수 이름을 지정합니다.
답변
다른 사람들과 비슷합니다.
cols <- c("premium","change","newprice")
colnames(dataframe) <- cols
매우 간단하고 수정하기 쉽습니다.