将数据框列从字符转换为数字

2023-12-23

我有一个这样构造的数据框:

> yyz <- data.frame(a = c("1","2","n/a"), b = c(1,2,"n/a"))

> apply(yyz, 2, class)
      a           b 
"character" "character"

我试图将最后一列转换为数字,同时仍将第一列保留为字符。我试过这个:

> yyz$b <- as.numeric(as.character(yyz$b))
> yyz
  a  b
  1  1
  2  2
  n/a NA

但是当我运行应用类时,它告诉我它们都是字符类。

> apply(yyz, 2, class)
      a           b 
"character" "character"

我是否设置了错误的数据框?或者这是 R 解释数据框的方式?


如果我们只需要一列numeric

yyz$b <- as.numeric(as.character(yyz$b))

但是,如果所有列都需要更改为numeric, use lapply遍历列并转换为numeric首先将其转换为character类与列一样factor.

yyz[] <- lapply(yyz, function(x) as.numeric(as.character(x)))

OP 帖子中的两列都是factor因为字符串"n/a"。使用读取文件时可以轻松避免这种情况na.strings = "n/a" in the read.table/read.csv或者如果我们正在使用data.frame, 我们可以有character列与stringsAsFactors=FALSE(默认是stringsAsFactors=TRUE)


关于使用apply,它将数据集转换为matrix and matrix只能举办一个班级。要检查class, 我们需要

lapply(yyz, class)

Or

sapply(yyz, class)

Or check

str(yyz)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据框列从字符转换为数字 的相关文章

  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD
  • 闪亮的点击/画笔不适用于非笛卡尔坐标?

    我正在开发一个闪亮的应用程序 它应该让用户在由 ggplot2 生成的世界地图上选择地理数据点 如这个例子 http shiny rstudio com gallery plot interaction selecting points h
  • 在构建分数多项式函数时避免 eval(parse())

    我的目标是在 R 中编写一个函数 它接受 a 的系数分数多项式 http www stata com manuals13 rfp pdf rfpRemarksandexamples FP 并返回一个向量化函数 该函数针对给定的输入数字计算指
  • R List with sub-list:将与规则匹配的所有元素提取到数组中

    我有一个 R 对象列表 它们又是各种类型的列表 我想要类别为 内部 的所有对象的 成本 值 实现这一目标的好方法是什么 如果我有一个数据框我会做类似的事情 my dataframe cost my dataframe category in
  • R:行数不相等的列绑定

    我有两个数据集 它们每个都有变量 ID Block 和 RT 反应时间 我想合并 列绑定这两个集合 以便我拥有一个包含变量的数据集 ID 块 RT1 RT2 问题是两个集合中的行数不相等 此外 ID 和块号匹配也很重要 缺失值应替换为 NA
  • R 的 read.csv 在第一列名称前面加上垃圾文本[重复]

    这个问题在这里已经有答案了 我已将数据从 SQL Server Management Studio 中的结果网格导出到 csv 文件 csv 文件看起来正确 但是当我使用 read csv 将数据读入 R 数据帧时 第一个列名称前面带有 如
  • “未找到 JAVA 路径。请检查 JAVA 是否已安装。”初始化 RSelenium 时出错

    我正在尝试启动一个 RSelenium 会话到 webscrape 但是 当运行此代码时 driver lt rsDriver browser c chrome chromever 76 0 3809 126 port 4444L 我收到此
  • 零膨胀泊松分布:无法估计参数,错误代码为 100

    以下是我正在研究的一种数据集 data lt c 0 1 0 11 2 0 3 0 0 2 1 3 1 0 1 0 0 0 2 3 0 0 0 8 1 1 1 0 1 1 2 7 0 0 0 5 2 3 6 1 1 5 2 9 0 0 1
  • 安装 gplots 时出错

    我正在 OSX v 10 9 2 上运行 R v 3 0 3 当尝试使用以下命令在 R studio 中安装 gplots 包时 出现错误 gt library gplots Error in library gplots there is
  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in
  • 收集四列,其中两个键中包含值

    已经提出了类似的问题 但它们都涉及在一个关键列中收集多个列 我需要两个键中的多个列 这是我的数据框 ID measure A 1 measure A 2 measure B 1 measure B 2 1 8 25 23 5 4 5 2 8
  • 如何从R中串扰的filter_select中删除(全部)?

    我遵循图 16 7 的示例https plotly r com client side linking html https plotly r com client side linking html并且无法弄清楚为什么有一个名为 全部 的
  • R:如何将描述小时、分钟和秒的非直观字符串转换为可行的 POSIXct 格式以执行标准算术?

    我在 R 中有一个数据集 其值采用小时 分钟和秒格式 然而 有些值只有小时和分钟 有些值只有分钟和秒 有些值只有分钟 有些值只有秒 它的格式也不是很有利 样本数据如下 example lt as data frame c 22h28m 17
  • r:按多列分组并计数

    我有以下数据框 df LeftOrRight SpeedCategory NumThruLanes R 25to45 3 L 45to62 2 R Gt62 1 我想按速度类别对其进行分组 并循环遍历其他列以获取每个速度类别中每个唯一代码的
  • 将文件夹中的多个 csv 文件读取到 R 中的单个数据帧中[重复]

    这个问题在这里已经有答案了 我有一个包含 332 个 csv 文件的文件夹 文件名称如下 001 csv 002 csv 003 csv 330 csv 331 csv 332 csv 所有文件都具有相同数量的变量和相同的格式 我需要读取一
  • R中无法连接odbc数据库

    我一直在尝试使用以下命令将我公司的 DMS 连接到 RodbcConnect命令 但收到以下消息 myConn lt odbcConnect NZSQL uid cejacobson pwd password Warning message
  • mlogit:需要 TRUE/FALSE 时缺少值

    我有来自离散选择实验 DCE 的数据 该实验研究了来自不同行业的个人的招聘偏好 我已经格式化为长格式 我想使用 mlogit 进行建模 我已导出数据 并且可以使用 asclogit 命令在 Stata 中成功运行模型 但在 R 中运行时遇到
  • data.table 的包装函数

    我有一个已经使用 data frame 上下文编写的项目 为了缩短计算时间 我尝试利用 data table 的速度 我的方法是构造包装函数 读取帧 将它们转换为表 进行计算 然后转换回帧 这是一个简单的例子 FastAgg lt func
  • 更新两组单选按钮 - 闪亮

    我问了这个问题 反应式更新两组单选按钮 闪亮 https stackoverflow com questions 35040579 update two sets of radiobuttons reactively shiny 昨天 但也
  • 跨类别和列自动化卡方

    我有一个调查数据框 其中包含几个问题 列 编码为 1 同意 0 不同意 受访者 行 根据 年龄 年轻 中年 老年 地区 东 中 西 等指标进行分类 大约有30个类别总共 3个年龄 3个地区 2个性别 11个职业等 在每个指标中 类别不重叠且

随机推荐