R 如何更改列名并在数据集中创建列的数据框
我正在构建一个函数来更改3列的列名,并用3列创建一个新的数据框。文件名是noaaFilename,Date、HrMn和Slp是较早的列名,而我想要的新名称是Date、Time和atmospressR 如何更改列名并在数据集中创建列的数据框,r,R,我正在构建一个函数来更改3列的列名,并用3列创建一个新的数据框。文件名是noaaFilename,Date、HrMn和Slp是较早的列名,而我想要的新名称是Date、Time和atmospress names(noaaFilename)[names(noaaFilename) == "Date"] <- "Date" names(noaaFilename)[names(noaaFilename) == "HrMn"] <- "Time" names(noaaFilenam
names(noaaFilename)[names(noaaFilename) == "Date"] <- "Date"
names(noaaFilename)[names(noaaFilename) == "HrMn"] <- "Time"
names(noaaFilename)[names(noaaFilename) == "Slp"] <- "AtmosPressure"
noaaData <- subset(noaaFilename, select = c(Date, Time, AtmosPressure))
names(noaaFilename)[names(noaaFilename)=“Date”]noadatamysubset-Yo可能需要为您的示例提供一些示例数据,以便为其他示例运行。问题应该是可复制的。这意味着任何看到代码的人都应该得到他们所需要的一切。尝试提供几行noaafilename。
noaaData <- subset(noaaFilename, select = c(Date, HrMn, Slp))
names(noaaData) <- c("Date", "Time", "AtmosPressure")
mysubset <- function(df, oldnames, newnames){
if(length(oldnames)!=length(newnames)){
stop("oldnames and newnames are not the same length")
}
if(!all(oldnames%in%colnames(df)){
stop("Not all of oldnames match column names of df")
}
df <- df[,oldnames, drop = F]
colnames(df) <- newnames
return(df)
}
head(iris)
# 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
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
tmp <- mysubset(iris,
oldnames = c("Sepal.Length","Sepal.Width","Species"),
newnames = c("Date","Time","AtmosPressure"))
head(tmp)
# Date Time AtmosPressure
#1 5.1 3.5 setosa
#2 4.9 3.0 setosa
#3 4.7 3.2 setosa
#4 4.6 3.1 setosa
#5 5.0 3.6 setosa
#6 5.4 3.9 setosa