使用for循环将列名从大写字母转换为小写

时间:2017-12-20 11:15:37

标签: r

我想使用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()
 }

请告诉我我错在哪里,谢谢你。

3 个答案:

答案 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

Demo

答案 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循环返回,这会导致错误。