向数据框的“类”提供向量

2023-11-27

您知道如何向数据框提供名称向量来更改数据框的列或行名称。是否有类似的方法来提供名称向量来更改数据框中每列的类?当您使用 colClasses 通过 read.table 读取数据帧时,可以执行此操作。如果数据框是在 R 内部创建的呢?

DF <- as.data.frame(matrix(rnorm(25), 5, 5))
str(DF)  #all numeric modes

names(DF) <- c("A", "A2", "B", "B2", "Z") #I want something like this for classes
some_classes_function_like_names(DF) <- c(rep("character", 3), rep("factor", 2))

#I can do it like this but this seems inefficient 
DF[, 1:3] <- lapply(DF[, 1:3], as.character)
DF[, 4:5] <- lapply(DF[, 4:5], as.factor)

str(DF)

编辑:我将上面的 sapply 更改为 lapply,因为 sapply 没有意义。

编辑2:如果有办法编写用户定义的函数也足够了


尝试这个:

toCls <- function(x, cls) do.call(paste("as", cls, sep = "."), list(x))
replace(DF,, Map(toCls, DF, cls))

第二个例子。也可以尝试这个例子(它允许NA用于任何类别不改变的列)。我们加载动物园包,因为它提供了一个版本as.Date有一个默认的原点,我们定义自己的as.POSIXct2同样避免必须另外指定来源。

library(zoo) # supplies alternate as.Date with a default origin
as.NA <- identity
as.POSIXct2 <- function(x) as.POSIXct(x, origin = "1970-01-01")

cls2 <- c("character", "Date", NA, "factor", "POSIXct2")
replace(DF,, Map(toCls, DF, cls2))

请注意,仅当将数字转换为"Date" or "POSIXct"存在来源方面的考虑以及在转换字符串时,例如"2000-01-01"在任何情况下都不需要指定来源,因此对于这种情况,我们不需要加载动物园,也不需要我们自己的版本as.POSIXct .

编辑:添加了另一个例子。

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

向数据框的“类”提供向量 的相关文章

  • 如何在 R 中解析堆叠多个 JSON 的文件?

    我在 R 中有以下 堆叠 JSON 对象 example1 json ID 12345 Timestamp 20140101 Usefulness Yes Code event1 A result 1 ID 1A35B Timestamp
  • 如何在 R 中“推断”面板数据的值?

    我有一个带有 NA 值的面板数据 如下所示 uid year month day value 1 1 2016 8 1 NA 2 1 2016 8 2 NA 3 1 2016 8 3 30 4 1 2016 8 4 NA 5 1 2016
  • 为什么在 data.frame 中预先指定类型会比较慢?

    我预先分配了一个大 data frame 以便稍后填写 我通常这样做NA是这样的 n lt 1e6 a lt data frame c1 1 n c2 NA c3 NA 我想知道如果我预先指定数据类型是否会让事情变得更快 所以我测试了 f1
  • 将函数应用于矩阵列表

    我有一个矩阵列表 注意 它们的维度与此示例不同 x lt matrix 1 10 ncol 2 y lt x 300 mylist lt list x y 我想运行一个函数networklevel在矩阵列表中的每个矩阵上 该函数有各种可以计
  • 如何从R中串扰的filter_select中删除(全部)?

    我遵循图 16 7 的示例https plotly r com client side linking html https plotly r com client side linking html并且无法弄清楚为什么有一个名为 全部 的
  • tidyverse 干扰 ggplot2 吗?无法访问map_data

    在控制台中运行这些命令 输出为 gt cty0 ggplot2 map data county gt library tidyverse Loading tidyverse ggplot2 Loading tidyverse tibble
  • dplyr:带引号变量名的 mutate 的标准评估

    我将如何使用mutate 我的假设是我正在寻找标准评价就我而言 因此mutate 但我对此并不完全有信心 当使用接受变量名列表的函数时 如下所示 createSum function data variableNames data gt m
  • R 带有列和行的分面 qqplots

    我需要使用按行和列的构面创建 qqplot 我了解如何用列和行绘制分面图 但我不确定如何设置我的数据 最终 我想按列和行对数据集进行分组 然后按升序对 建模 结果和 观察到 结果进行排序 同时添加带有 行 组的列和带有 列 组的列 我一直在
  • R中无法连接odbc数据库

    我一直在尝试使用以下命令将我公司的 DMS 连接到 RodbcConnect命令 但收到以下消息 myConn lt odbcConnect NZSQL uid cejacobson pwd password Warning message
  • 配置 fix() 和 edit() 以从 R/RStudio 在 Notepad++ 中打开

    当我在 RStudio 或 RGUI 中执行此操作时 fix SomeFunction 或使用edit 我可以在记事本中看到该函数的代码 有什么方法可以更改此设置 以便代码预览在 Notepad 中打开 而不是在普通的旧记事本中打开 同样
  • 在 R 中使用深度网络和 MNIST 数据读取手写数字第 3 部分

    我尝试编写一个基于深度网络的程序来读取手写数字 我在 Youtube 上找到了一个代码 https www youtube com watch v 5bso 5X7Zu4 https www youtube com watch v 5bso
  • 如何在R中将英尺转换为厘米?

    我得到了一个高度的字符向量 如下所示 859 5 10 5 8 5 11 6 0 5 10 6 2 5 11 6 2 6 2 5 7 5 9 5 7 6 1 6 0 5 11 6 0 6 5 6 1 6 1 5 10 5 11 5 11 6
  • XLConnect 无法确定 JAVA_HOME 错误

    感谢您的帮助 我正在尝试运行 XLconnect 但收到此错误消息 gt library XLConnect lib loc C Users 1144143929 Documents R win library 2 15 Error onL
  • 使用faceting()时如何连接geom_point()和geom_line?

    我有一个问题 但我在互联网上没有找到任何相关信息 我很高兴得到一些提示 我有一个数据集 其中 x 轴是离散的 但我想将这些点相互连接 我可以做到 我的问题是当我添加分面选项时 我无法再将这些点相互链接起来 我找到了一个替代方案 但看起来不太
  • 将模式的所有元素与向量以相同的顺序匹配

    我创建了一个函数yes seq需要两个参数 一个模式pat和数据dat 该函数以相同的顺序查找数据中是否存在模式 例如 dat lt letters 1 10 dat 1 a b c d e f g h i j pat lt c a c g
  • 连接树状图和热图

    我有一个heatmap 一组样本的基因表达 set seed 10 mat lt matrix rnorm 24 10 mean 1 sd 2 nrow 24 ncol 10 dimnames list paste g 1 24 sep p
  • 构造奎因(自我复制功能)

    有没有人构建过 quine 生成自己源文本的副本作为其完整输出的程序 http www nyx net gthompso quine htm http www nyx net gthompso quine htm 在 R 中 quine 标
  • 如何使用 Facet R 添加线条[重复]

    这个问题在这里已经有答案了 所以我有一个多面图 我希望能够向其中添加随每个面而变化的线 这是代码 p lt ggplot mtcars aes x wt geom histogram bins 20 aes fill factor cyl
  • 按名称包含在单个对象中的多个列对 data.frame 进行排序?

    我想排序一个data frame由多列组成 理想情况下使用基础 R 无需任何外部包 尽管如果有必要 就这样吧 读过如何按列对数据框进行排序 https stackoverflow com questions 1296646 how to s
  • Matlab 中是否有相当于 R 的 dput() 的函数?

    Matlab 中是否有相当于 R 的 dput 的函数 dput 将 R 对象的 ASCII 文本表示形式写入文件或连接 UPDATE 1 添加了递归和对单元格的支持 UPDATE 2 添加了对结构的支持 UPDATE 3 增加了对逻辑 整

随机推荐

  • itextsharp 测量块宽度/高度

    我正在尝试使用 iTextSharp 进行一些精确对齐 但我一直达不到要求 因为我无法找到一种方法来获取块或段落的宽度 高度值 如果我创建一个具有特定字体 大小和文本的段落 那么它的尺寸应该是已知的 对吗 我知道默认的左 右 中心对齐对我来
  • 在 ASP.NET Core 中将 Razor 视图渲染为字符串

    I use 剃刀引擎用于解析我的 MVC 6 项目中的模板 如下所示 Engine Razor RunCompile File ReadAllText fullTemplateFilePath templateName null model
  • 模块 t 导入意外值 null

    在将我的应用程序 Angular2 express starter 的一个分支 部署到 Heroku 时 我遇到了这个奇怪的问题 https totalautosapp herokuapp com 起初我以为是 Heroku 但我将它部署到
  • 这种形式的方法调用仅允许类方法错误

    我不断收到此错误 在FGetZoneData I have var SelectedDept String implementation procedure TFGetZoneDept GetClick1 Sender TObject va
  • 限制选择列表的初始宽度

    我有一个选择列表 其中一些客户为他们输入了非常长的选项 这破坏了设计 我想知道是否有一种方法可以在选择小部件上设置固定宽度 但它生成的下拉菜单仍然足够宽以显示所有选项 由于您没有指定所需的浏览器支持 因此这可能是也可能不是解决方案 这适用于
  • 脚本是否有一种相当简单的方法来判断(从上下文)“她”是否是所有格代词?

    我正在编写一个脚本来反转一段文本中的所有性别 因此所有性别单词都会被交换 男人 与 女人 交换 她 与 他 交换 等等 但是存在歧义 因为是否应该用 他 或 他的 代替 她 好的 让我们像语言学家一样看待这个问题 我在这里大声思考 Her
  • Android,布局中的透明子GLSurfaceView? [复制]

    这个问题在这里已经有答案了 可能的重复 Android OpenGL ES 透明背景 我想在正常的 2d ui 布局屏幕上显示一些 3d 对象 2d ui 屏幕有背景图像 GLSurfaceView 是内容布局的子级 我在 ApiDemos
  • NSUserDefaults 是否会通过更新 Appstore 中的应用程序而持续存在?

    是这样吗 当您向 App Store 上的应用程序提交更新时 NSUserDefaults 是否会重置 或者是否会重置 我的应用程序在更新时崩溃 但在完全下载时不会崩溃 所以我试图确定更新的会话与新下载的会话中可能有什么不同 干杯 缺口 除
  • 如何使用 dplyr 将累积列添加到 R 数据帧?

    我有同样的问题这个帖子 但我想用dplyr 使用 R 数据框 例如 df lt data frame id rep 1 3 each 5 hour rep 1 5 3 value sample 1 15 如何添加与 id 匹配的累积和列 W
  • Scrapy process_links 和 process_request 的示例代码

    我是 Scrapy 的新手 我希望有人能给我一些很好的示例代码 说明何时 process links 和 process request 最有用 我看到 process links 用于过滤 URL 但我不知道如何编码 谢谢 你的意思是sc
  • 从 R 中的字符串中删除表情符号

    我有一个推文列表 其中许多包含需要删除的表情符号 在 R 中执行此操作最有效的方法是什么 我尝试了以下方法 该方法应该用空白替换所有以 开头的单词 但我收到此错误 some tweets lt gsub w some tweets Erro
  • Python 中的“按位非”不考虑 2 的补码

    我需要在Python中执行 操作 但不考虑2的补码 我设法通过使用来做到这一点XOR 你知道另一种方法吗 更高效 a 0b101 b 0b10101 print bin a 2 a bit length 1 0b10 print bin b
  • 使用 lambda 参数重写 Coq

    我们有一个函数可以将元素插入到列表的特定索引中 Fixpoint inject into A x A l list A n nat option list A match n l with 0 gt Some x l S k gt None
  • 如何在正则表达式中匹配 12 小时时间 hh:mm?

    如何在正则表达式中匹配 12 小时时间 换句话说 匹配 12 30 但不匹配 14 74 谢谢 这应该有效 1 9 1 012 0 5 0 9
  • 如果我不告诉 C++ 中要抛出什么类型的对象,则抛出什么 throw 语句?

    由于没有显式抛出任何对象 以下代码异常终止 下面代码中的 throw 语句抛出了什么 int main try cout lt lt try throw catch cout lt lt catch return 0 throw不带参数只能
  • Bootstrap 轮播中的文本垂直居中

    我在 Bootstrap 4 中创建文本水平和垂直居中的轮播时遇到问题 我已经创建了bootply使用轮播 但文本位于左上角而不是屏幕中间 div class carousel slide div class carousel inner
  • RESTEasy 返回的集合中的根元素名称

    我在 JBoss AS 6 中通过 RestEasy 使用 JAX RS 当我的 JAX RS 资源返回项目集合 例如通过列表 时 RESTEasy 始终使用名称collection作为根元素 E g
  • 在一个文件中引用 typescript 定义,而不是所有 JS 文件?

    我正在 Visual Studio Code 中开发 Node JS Express 项目 并且想知道是否有一种方法可以在一个全局位置引用 TypeScript 定义 而不必在每个 JS 文件中重新引用定义 我看到 VSCode 支持 ts
  • 检索存档消息时未实现该功能

    我在用Openfire 3 8 2并安装了监控插件并启用了一对一聊天的存档 现在我可以在服务器端查看存档聊天 但是当我通过一个节时 我得到feature not implemented Request
  • 向数据框的“类”提供向量

    您知道如何向数据框提供名称向量来更改数据框的列或行名称 是否有类似的方法来提供名称向量来更改数据框中每列的类 当您使用 colClasses 通过 read table 读取数据帧时 可以执行此操作 如果数据框是在 R 内部创建的呢 DF