我的格式为data.frame
:
'data.frame': 244 obs. of 1 variable:
$ names: Factor w/ 244 levels "ERA","BAKE",..: 1 2 3 4 5 6 7 8 9 10 ...
我用它将它转换为小写:
df$names <- tolower(df$names)
因此我得到了这个:
> str(df)
'data.frame': 244 obs. of 1 variable:
$ names: chr "era" "bake" "and" "stock price" ...
如何保持初始data.frame
的结构,同时转换为小写?
答案 0 :(得分:21)
查看tolower
的来源(您可以通过在控制台中输入变量名称tolower
或输入print(tolower)
)来执行此操作:
if (!is.character(x))
x <- as.character(x)
您的factor
列被强制为character
向量。
levels(df$names) <- tolower(levels(df$names))
这也更有效,因为我们只需要替换内存中length(levels(df$names))
的值,通常比替换nrow(df)
值的完整向量小得多。
答案 1 :(得分:1)
如果您只想更改列名,可以尝试以下语法。
colnames(df) <- tolower(colnames(df))