我有一个像这样的数据框:
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
我希望用正确的字母替换不正确的字母(Á,É,Í,...)。明确表示我想使用apply,因为我读到的效果比使用效率要高得多。我的想法是创建一个改变这些字母的函数:
letters1<-c("\xc1","\xc9","\xcd","\xd3", "\xd1") #Á,É,Í,Ó,Ñ
letters2<-c("Á","É","Í","Ó","Ñ")
change.names <- function(x){sub(letters1[x], letters2[x],rownames(data.names))}
现在,有了一个for我没有任何问题:
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)
分配给它们的“混合”,或者有效的东西。
答案 0 :(得分:3)
您甚至不需要使用apply,因为for
是一个向量,向量可以回收
var script = <<<SCR
<script type="text/javascript">
$( document ).ready(function() {
console.log('test');
window.GlobalVar = {show_table : "<tr><td>%.0f</td><td>%s</td><td>€ %0.02f</td><td>€ %0.02f</td><td><a href=''><img class='delete_task' src='/brugginkadmin/public_html/images//icons/delete.png' data-id='%s'></a></td><td><input type='checkbox' name='delete_query' value='%s'></td></tr>"};
});
</script>
SCR;
echo script;
有关编码的详细信息,请阅读此answer。