为什么R中的转置函数将数字转换为字符?

2024-05-25

我在 Excel 中构建了一个简单的矩阵,其中包含一些字符值和一些数值(Excel 中设置的数据的屏幕截图 https://i.stack.imgur.com/UpQ1I.png)。我使用 openxlsx 包将其读入 R,如下所示:

library(openxlsx)
data <- read.xlsx('~desktop/data.xlsx)

之后我检查班级:

sapply(data, class)
         x1         a         b          c
"character" "numeric" "numeric"  "numeric"

这正是我想要的。当我尝试转置矩阵,然后再次检查类时,出现问题:

data <- t(data)

当我现在检查 sapply 时,所有值都是“字符”。为什么转置时不保留类?


首先,当我在电子表格中读取时,我没有得到你的结果,因为带有逗号分隔数字的单元格显示为字符。

data <- read.xlsx("data.xlsx")
data
#  X1   a b   c
#1  x 0,1 3 4,5
#2  y 2,4 0 6,5
#3  z  24 0   0
sapply(data,class)
#         X1           a           b           c 
#"character" "character"   "numeric" "character" 

但您真正看到的问题是,通过转置数据框,您在同一列中混合了类型,因此 R 必须将整个列转换为最广泛的常见类型,在本例中为字符类型。

mydata<-data.frame(X1=c("x","y","z"),a=c(1,2,24),b=c(3,0,0),c=c(4,6,0),stringsAsFactors = FALSE)
sapply(mydata,class)
#         X1           a           b           c 
#"character"   "numeric"   "numeric"   "numeric" 
# what you showed
t(mydata)
#   [,1] [,2] [,3]
#X1 "x"  "y"  "z" 
#a  " 1" " 2" "24"
#b  "3"  "0"  "0" 
#c  "4"  "6"  "0" 

mydata_t<-t(mydata)
sapply(mydata_t,class)
#          x           1           3           4           y           2           #0           6           z          24 
#"character" "character" "character" "character" "character" "character" #"character" "character" "character" "character" 
#          0           0 
#"character" "character" 

您想处理转置矩阵中的数字并在之后将它们转置回来吗?如果是这样,请转置暂时删除字符列的子矩阵,然后重新组装,如下所示:

sub_matrix<-t(mydata[,-1])
sub_matrix
#  [,1] [,2] [,3]
#a    1    2   24
#b    3    0    0
#c    4    6    0
sub_matrix2<-sub_matrix*2
sub_matrix2
#  [,1] [,2] [,3]
#a    2    4   48
#b    6    0    0
#c    8   12    0
cbind(X1=mydata[,1],as.data.frame(t(sub_matrix2)))
#  X1  a b  c
#1  x  2 6  8
#2  y  4 0 12
#3  z 48 0  0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么R中的转置函数将数字转换为字符? 的相关文章

  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • R foreach问题(某些进程返回NULL)

    我遇到了问题foreach我正在 R 中使用的程序的一部分 该程序用于运行不同参数的模拟 然后将结果返回到单个列表 然后用于生成报告 当并非所有分配的模拟运行都在报告上实际可见时 就会出现问题 从各方面来看 似乎只有分配的运行的一个子集实际
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • 尝试读取 CSV 文件时出现“无法识别的字符串转义”

    我正在尝试导入一个 csv文件 以便我可以观看此视频 R ggplot2 图形直方图 http www youtube com watch v 47kWynt3b6M 我安装了所有正确的软件包 包括ggplot以及相关的包 视频中的第一个说
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • 为什么 R 更新后 sim_slopes() 中会出现此错误?

    我正在尝试使用 交互 包来创建简单斜率的约翰逊 尼曼图 但是 当尝试运行 sim slopes 函数时 出现以下错误 直到我将R更新到4 2 2 我才没有遇到这个问题 我使用的是 macOS Ventura 13 1 Error class
  • 使用 ggmap 截断密度多边形

    我在使用 R ggmap 绘制密度图时遇到问题 我的数据如下所示 gt head W date lat lon dist 1 2010 01 01 31 942 86 659 292 415 2 2010 01 10 32 970 84 1
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 删除极坐标图边缘的多余空间和圆环

    我有一个极坐标图ggplot2我已经非常接近完成 相当简单的情节 我已经能够在删除矩形边框方面获得帮助 但我不需要删除最后一个范围轮廓与带有方位角标签的绘图周围的环之间的额外空间 我希望该图的边界为 15 000 而不是 15 214 我编
  • 实三次多项式的最快数值解?

    R 问题 寻找最快的方法来数值求解一堆已知具有实系数和三个实根的任意三次方程 据报道 R 中的 polyroot 函数对复杂多项式使用 Jenkins Traub 算法 419 但对于实多项式 作者参考了他们早期的工作 对于实三次或更一般的
  • 如何将plot中的单变量列表图表转换为ggplot2格式?

    我正在搜索 但仍然找不到一个非常简单的问题的答案 我们如何使用 R 中的 ggplot2 生成一个变量的简单线图 我正在分析时间序列数据 并且想要对图表进行更复杂的操作 我认为如果我使用 ggplot2 代替会更好plot It works

随机推荐

  • 在许多驱动程序文件夹中创建 build-in.o

    我正在用我的自定义驱动程序构建内核 成功构建后 我发现了许多 build in o 文件 任何人都可以详细说明这些文件是如何在这里结束的吗 我只能怀疑这些与更高级别的 makefile 有关 built in o 文件是未构建为模块的内核的
  • 如何使用 env 变量作为 github actions 中输入的默认值?

    我有一个 github 操作 它有一个输入 该输入应该具有基于 env variable 的默认值 因为 github actions 不支持环境变量default字段 我想知道是否可以在我的 action yml 文件的步骤部分中重新分配
  • C# 组件事件?

    我正在尝试编写一个将公开事件的 C 组件 该组件将由非托管 C 应用程序导入 根据一些教程 我想出了这段代码 针对 C 端 namespace COMTest ComVisible true Guid 02271CDF BDB9 4cfe
  • QObject多重继承

    我正在尝试在 C Qt 类中使用 mix 来提供一大堆具有通用接口的小部件 该接口是以这样的方式定义的 如果它被定义为其他小部件类的基类 那么小部件本身将具有这些信号 class SignalInterface public QObject
  • GetCharIndexFromPosition() 获取最后一个字符

    我想获取光标下的子字符串富文本框 http msdn microsoft com en us library system windows controls richtextbox 28v vs 110 29 aspx private vo
  • 我什么时候应该创建数据库索引? [复制]

    这个问题在这里已经有答案了 何时为表设置索引 是在创建表期间还是在性能调优时 索引的优点和缺点是什么 许多 大多数 DBMS 使用索引来支持唯一约束 始终创建索引以强制执行唯一约束 它们 约束 对于数据库的正确操作至关重要 如果您可以选择如
  • Spring Boot 多部分文件上传

    我使用 Spring Boot 并希望使用控制器来接收分段文件上传 发送文件时我不断收到错误 415 不支持的内容类型响应并且从未到达控制器 There was an unexpected error type Unsupported Me
  • Android:由于 Web 服务 Http 请求,活动显示时间过长

    我的一项活动是在启动应用程序时向 Web 服务发出 http 请求以获取一些天气数据 由于 Web 服务请求 活动需要 3 4 秒才能显示的问题 在实际设备上测试 我知道我没有以正确的方式这样做 我所做的就是在 onCreate 方法上 我
  • RestKit RKObjectMapping Swift 可选

    我有一个名为Activity可以选择有一个coordinate附于其上 import MapKit class Activity NSObject var coordinate CLLocationCoordinate2D class fu
  • ajaxSetup(beforeSend 不起作用

    登录到远程 API 服务器并获取 access token 后 我尝试为所有后续 ajax 调用设置授权标头 done function result console log GOT AUTHORIZATION amplify store
  • 硒网格监听节点端口而不是集线器端口

    对于我的测试 我在不同的端口上本地运行网格和节点 java jar usr bin selenium server jar port 4444 role hub java jar usr bin selenium server jar ro
  • Laravel 5.1 用户、角色和操作

    我正在使用 Laravel 5 1 创建一个应用程序users roles and actions 表设置如下 user id name 1 John Smith 2 Fred Smith role id name 1 Administra
  • 使用 C++ REST SDK 的 Http_client post 请求(卡萨布兰卡)

    我正在尝试使用 C REST SDK Casablanca 库执行 POST HTTP 请求 但我没有成功 我也找不到任何最近 工作片段 有谁能够帮助我 通过以下代码 我获得了运行时网络 json json exception说 不是字符串
  • ~~(“双波浪线”)在 Javascript 中做什么?

    我今天在查看一个在线游戏物理库时遇到了 运算符 我知道单个 是按位 NOT 这会使 成为 NOT 的 NOT 这会返回相同的值 不是吗 它会删除小数点后的所有内容 因为按位运算符会隐式地将其操作数转换为带符号的 32 位整数 无论操作数是
  • java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java2411

    我正在尝试将 opencv 添加到我的 Spring Boot Maven 项目中 为了使用 opencv 库 我必须在 java library path 中提供本机库 我已将以下命令添加到 Eclipse VM 参数中 Djava li
  • 参数相关查找是否在正常范围查找之前进行?

    这是出现在 C Primer 第 5 版第 13 3 节中的相关代码 void swap Foo lhs Foo rhs using std swap swap lhs h rhs h uses the HasPtr version of
  • android中viewpager中的多个视频播放器

    我想在 viewpager 中的不同片段上播放视频 我为每个片段使用多个媒体播放器和表面视图 当我向左或向右滑动时 我也想暂停和开始视频 滑动到下一个视频完全没有问题 但是当我滑动到上一个视频 已经在播放 时 表面视图重叠 同时 我可以毫无
  • 解析 LIUM 扬声器二值化输出

    我如何使用 LIUM 演讲者分类工具包知道哪个演讲者发言了多长时间 例如 这是我的 seg 文件 cluster S0 score FS 33 93166562542459 score FT 34 24966646974656 score
  • 使鼠标移动像人类一样(使用弧线而不是直线到达目的地)

    我正在使用 java awt Robot 制作自动答题器 然而 我担心的问题之一是这些动作不太像人类 谁能建议对我的代码进行一些更改 使其更加人性化 现在它只是沿直线移动 param robot The java awt Robot bei
  • 为什么R中的转置函数将数字转换为字符?

    我在 Excel 中构建了一个简单的矩阵 其中包含一些字符值和一些数值 Excel 中设置的数据的屏幕截图 https i stack imgur com UpQ1I png 我使用 openxlsx 包将其读入 R 如下所示 librar