我想使用for循环
以小写形式转换列名df <- structure(list(a = c(1, 2), b = c(2, 3)), .Names = c("a", "b"
), row.names = c(NA, -2L), class = "data.frame")
如果我使用R基本功能很容易转换
colnames(df) <- toupper(colnames(df))
但是当我使用以下R代码无法完成时
for( i in colnames(df)){
colnames(df[i]) = toupper(i)
return()
}
请告诉我我错在哪里,谢谢你。
答案 0 :(得分:1)
您应该可以通过<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="w-input">
<p class="hide errortext">Hello Error block</p>
循环遍历列名数来执行此操作:
for
答案 1 :(得分:1)
他比我快。您也可以跳过lenght(colnames(df))
:
for( i in 1:ncol(df)){
colnames(df)[i] <- toupper(colnames(df)[i])
}
答案 2 :(得分:1)
df[i]
是与df
不同的对象。虽然colnames<-
有副作用来更改对象,但您并未给它df
进行更改。您需要以可以修改df
的方式重写,例如:
for( i in colnames(df)){
colnames(df)[which(colnames(df)==i)] = toupper(i)
}
df
A B
1 1 2
2 2 3
此外,您不应该从顶层的for循环返回,这会导致错误。