Я начинаю новичок, и, возможно, кто-то должен был просить об этом уже, но я не мог найти ответ.r- Переименуйте несколько столбцов, извлекая часть имени
Мои данные выглядят следующим образом.
id_lance <-c("300_09_11", "400_09_11", "400_09_11", "400_09_11", "500_06_08",
"500_06_08", "500_09_11", "600_06_08" , "700_09_11", "700_09_11")
especie <-c("esp1", "esp1", "esp1", "esp2", "esp2", "esp3", "esp2", "esp3",
"esp3", "esp4")
abundancia <-as.numeric (c("190", "267","76", "111", "34", "334", "777", "1067",
"19", "255"))
df = data.frame(id_lance, especie, abundancia)
matriz <-as.data.frame(tapply(df$abundancia,list(df$especie,
df$id_lance),sum))
matriz[] <- lapply(matriz,function(x) replace(x, is.na(x), 0))
Я хочу, чтобы переименовать название колонки, извлекая первые 3 числа, то есть, «300_09_11» до «300» и так далее.
Я пробовал с strsplit
и gsub
отдельно, а затем вместе без успеха. Я не знаю, можно ли это сделать с помощью цикла или с чем-то вроде этой неудачной попытки.
names(matriz) <- gsub(strsplit(names(matriz), "_"),
paste0(substr(names(matriz)[[1]], 1, 3), names(matriz)))
Может ли кто-нибудь помочь мне ?. Благодарю.
Легче, чем я думал. –
Я знаю об опасности использования чисел в качестве имени столбца, но мне нужно, чтобы он просто проверял мои данные. Я удалю имена позже для анализа кластеризации. –