У меня есть кадр данных сделать так:Как исправить кодировку символов на data.frame
data.names<-data.frame(DATA=c(1:5))
rownames(data.names)<-c("IV\xc1N","JOS\xc9","LUC\xcdA","RAM\xd3N","TO\xd1O")
data.names
# DATA
# IV\xc1N 1
# JOS\xc9 2
# LUC\xcdA 3
# RAM\xd3N 4
# TO\xd1O 5
Я хочу неправильные буквы заменить правильными (A, E, I, .. .). Поясните, что я хочу использовать, потому что я читаю, что это гораздо эффективнее, чем для. Моя идея сделать функцию, которая изменяет эти буквы:
letters1<-c("\xc1","\xc9","\xcd","\xd3", "\xd1") #Á,É,Í,Ó,Ñ
letters2<-c("Á","É","Í","Ó","Ñ")
change.names <- function(x){sub(letters1[x], letters2[x],rownames(data.names))}
Теперь с для меня нет никаких проблем:
for(i in 1:5) rownames(data.names)<-change.names(i)
data.names
# DATA
# IVÁN 1
# JOSÉ 2
# LUCÍA 3
# RAMÓN 4
# TOÑO 5
Но я не так много знаю, как сделать это с подать заявление. Я пробовал:
apply(matrix(c(1:5),ncol=5),2,change.names)
И выход представляет собой матрицу с 5 столбцов, где каждый из них только меняет одну букву, и я не могу знать, как назначить rownames(data.names)
«микс» из них, или что-то, что работает.
rownames (data.names) <- sub (буквы1, letters2, rownames (data.names)), похоже, работает для меня без необходимости в цикле – Zfunk