Я новичок в R. Я экспортировал данные из базы данных и пытаюсь переименовать столбцы.
Примеры существующих названий (по одному объекту на параметр качества воды) приведены ниже в кавычках. Есть 6 возможных параметров на каждом сайте и 40 сайтов; Я хотел бы переименовать столбцы на основе параметра и сайта. Названия сайтов состоят из 3-7 символов и всегда идут после последней запятой. В моем наборе данных (AQexport1) 240 столбцов и 47 714 строк (строки представляют собой метки времени ежечасных непрерывных данных). Я хочу иметь возможность использовать код для других экспортов из этой базы данных с тем же форматом и параметрами, но, возможно, с другими сайтами.
Например:
- "Темп.Воды.Темп.Воды.БУБУ" | "Темп.Воды.Температура.BUBU" ‹--- Темп.BUBU
- "Вода.Темп.Поля.Посещения.KNF_DUP" ‹--- FVTemp.KNF_DUP
- "Sp.Cond.TempCorrected_nodrift.LOD_DUP" ‹---SpCnd.LOD_Dup
- "Sp.Cond.TempCorrected.PFM" ‹--- SpC.PFM
- "Sp.Cond.Field.Visits.CC7" ‹-- FVSpC.CC7
- "Cond.Conductivity.TM02Dup"‹-- Cond.TM02Dup
Я не могу понять, как написать contains() в операторе if (я понимаю, что приведенный ниже синтаксис неверен, я просто пытаюсь показать, что я думаю) или как извлечь символы из строки с несколькими десятичными знаками. точки, и это не извлекает одинаковое количество символов из конца имени столбца. Мне также интересно, является ли цикл for через colnames() лучшим решением.
for (i in 1:colnames(AQexport1)){
if (colnames(AQexport1[i]) contains "Water.Temp.W" | "Water.Temp.T"){
colnames(AQexport1[i]) <- Temp.insert_site_name_here
}
elseif (colnames(AQexport1[i])) contains "Water.Temp.F") {
colnames(AQexport1[i]) <- FVTemp.insert_site_name_here
}
elseif (colnames(AQexport1[i])) contains "nodrift") {
colnames(AQexport1[i])<-SpCnd.insert_site_name_here
}
elseif (colnames((AQexport1[i])) contains "Sp.Cond.T") {
colnames(AQexport1[i])<-SpC.insert_site_name_here
}
#continue elseif statements
}
%in%
как в:c("a", "b") %in% c("a", 45)
. Ваш код не кажется синтаксически правильным,contains
при условии, что это будет относиться к объектуcontains
, есть и другие странные вещи, то, чтоAQexport1
,AQexport1[i]
имеет смысл, еслиAQexport1
является вектором, но я, вроде как, думаю, в контексте ваш кодAQexport1
соответствует каким-то данным? - person Konrad   schedule 07.03.2017names(mtcars)[names(mtcars) %in% c("mpg", "cyl")] <- c("renameThisColumn")
- person Konrad   schedule 07.03.2017