windows 7,R 3.1.0 64bit
我有一个带有45个obs的data.frame。和46个变量以及所有列类作为字符。如何只将一个或两个列类更改为数字,例如,不对该列进行子集化。基本上,我想用新类维护data.frame。是否有一行代码可以做到这一点?
lapply给了我一些数据的子集,我不想要,或者我错过了这个功能。您可以演示使用mtcars数据集,例如
我在网上搜了几个小时。
感谢您抽出宝贵时间。
答案 0 :(得分:0)
如果您认为列应该是数字,请确保您知道为什么R将它们转换为字符。最好让数据导入尽可能干净,而不是在事后纠正错误。不过,您可以使用简单的循环
转换列dd <- mtcars
for(col in c("disp","hp")) {
dd[[col]] <- as.character(dd[[col]])
}
str(dd)
由于mtcars
中的所有内容都是数字,我将两个字段转换为字符。您也可以在这里使用lapply
,但这是少数的情况之一,我认为for循环在我看来更为直接。
答案 1 :(得分:0)
要转换列&#34; col1&#34;您的data.frame df到numeric:
class(df[["col1"]]) <- "numeric"