我对R非常陌生,我有一个从文件中读取的大型数据帧.其中的数据列包含的数据都是"普通"字符串,如"冰岛",但也有包含数字但作为字符串的列,如"25.1".有没有办法把所有只有数字的字符串都转换成数字?

我知道如何处理一列:var <- as.numeric(dataFrame$var)列,但这并不是很有效,因为我的数据框有大约160列.

我try 按如下方式转换整个数据帧,但不起作用:

DF2 <- lapply(DF1, function(x) {
  ifelse(!is.na(suppressWarnings(as.numeric(x))), as.numeric(as.character(x)), x)
})

测试包含DF2$colName的列将返回"字符",而不是"数字".这似乎也将数据帧变成了一个列表.

顺便说一句,我已经使用read.csv()读入了数据帧,除了文件名之外没有任何参数.此外,列不混合类型,要么全是普通字符串,要么全是数字字符串.

谢谢!

推荐答案

我们可以使用type.convert功能

示例数据

df <- data.frame(a=c("2.1"), b='iceland')

check classes in original 示例数据:

df |> lapply(\(x) class(x))

$a
[1] "character"

$b
[1] "character"

转化

df <- type.convert(df, as.is =TRUE)

测试输出

df |> lapply(\(x) class(x))

$a
[1] "numeric"

$b
[1] "character"

R相关问答推荐

使用gggplot 2在R中重新调整面板和y轴文本大小

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

如何在RMarkdown LaTex PDF输出中包含英语和阿拉伯语?

gt()从gt为相同内容的单元格 colored颜色 不同?

在组中添加值增加和减少的行

使用整齐的计算(curl -curl )和杂音

Select 季度月值

无法定义沿边轨迹的 colored颜色 渐变(与值无关)

Data.table';S GForce-将多个函数应用于多列(带可选参数)

当我添加美学时,geom_point未对齐

如何在R中通过多个变量创建交叉表?

从R中的对数正态分布生成随机数的正确方法

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

如果COLSUM为>;0,则COLNAME为向量

R基于变量组合创建新的指标列

按两个因素将观测值分组后计算单独的百分比

如何使用包metaviz更改标签的小数位数?

如何在刻面和翻转堆叠条形图中对齐geom_text()

有没有办法将勾选/审查标记添加到R中的累积关联图中?

R:改进实现简单模型