R重新排列数据框:一些行到列

2023-12-19

我什至不知道如何正确地命名问题!

假设我有一个数据框 d:

当前数据框:

d <- data.frame(sample = LETTERS[1:2], cat = letters[11:20], count = c(1:10))

   sample cat count
1       A   k     1
2       B   l     2
3       A   m     3
4       B   n     4
5       A   o     5
6       B   p     6
7       A   q     7
8       B   r     8
9       A   s     9
10      B   t    10

我正在尝试重新排列事物,使每个 cat 值成为自己的一列,sample 保留为一列(或成为行名称),并且 count 将是新 cat 列中的值,其中 0样本中没有猫的数量。就像这样:

所需的数据框布局:

   sample   k   l   m   n   o   p   q   r   s   t
1       A   1   0   3   0   5   0   7   0   9   0
2       B   0   2   0   4   0   6   0   8   0  10

解决这个问题的最佳方法是什么?

据我所知,这是:

for (i in unique(d$sample)) {
    s <- d[d$sample==i,]
    st <- as.data.frame(t(s[,3]))
    colnames(st) <- s$cat
    rownames(st) <- i
} 

即循环遍历原始数据框中的样本,并对每个样本子集进行转置。所以在这种情况下我得到

   k m o q s
 A 1 3 5 7 9

and

   l n p r  t
 B 2 4 6 8 10

这就是我陷入困境的地方。我尝试过很多事情merge, bind, apply,...但我似乎找不到正确的东西。另外,我忍不住想知道上面的循环是否是一个必要的步骤 - 与unstack也许?

不用说,我是 R 新手......如果有人可以帮助我,我将不胜感激!

PS 我尝试重新排列数据框的原因是希望使值的绘制更容易(即我想以表格格式在图中显示实际的 df )。

谢谢你!


Use dcast来自 reshape2 包

> dcast(d, sample~cat, fill=0)
  sample k l m n o p q r s  t
1      A 1 0 3 0 5 0 7 0 9  0
2      B 0 2 0 4 0 6 0 8 0 10

xtabs从基地出发是另一种选择

> xtabs(count~sample+cat, d)
      cat
sample  k  l  m  n  o  p  q  r  s  t
     A  1  0  3  0  5  0  7  0  9  0
     B  0  2  0  4  0  6  0  8  0 10

如果您希望输出为 data.frame,请尝试:

> as.data.frame.matrix(xtabs(count~sample+cat, d))
  k l m n o p q r s  t
A 1 0 3 0 5 0 7 0 9  0
B 0 2 0 4 0 6 0 8 0 10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R重新排列数据框:一些行到列 的相关文章

  • 如何将数据从长格式重塑为宽格式

    我在重新排列以下数据框时遇到问题 set seed 45 dat1 lt data frame name rep c firstName secondName each 4 numbers rep 1 4 2 value rnorm 8 d
  • Shiny :针对所有错误显示一条消息

    我在 R 的 Shiny 中有一个应用程序 我想处理消息 以便用户看不到发生了什么错误 我知道通过 tags style type text css shiny output error visibility hidden shiny ou
  • 在ggplot2中,箱线图线的末尾代表什么?

    我找不到箱线图线条端点代表什么的描述 For example here are point values above and below where the lines end 我意识到盒子的顶部和底部是第 25 个和第 75 个百分位数
  • R 中具有 p 值的相关矩阵

    假设我想要传导相关矩阵 library dplyr data iris iris gt select if is numeric gt cor y iris Petal Width method spearman gt round 2 现在
  • 如何在R中创建for循环? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 R 编程中启动 for 循环 https stackoverflow com questions 4162363 how to start a for loop in r programmin
  • 使用 R Markdown 文档作为函数源

    我正在研究 R Markdown 来记录我经常使用的功能 我会将它们放入 R Markdown 文件中以记录它们 然后如果我几个月后回来查看它 就能够阅读我在函数背后的想法 我的问题是 如果我开始一个新的 R 项目 是否可以获取 r mar
  • 来自大型数据帧的共现

    我有一个数据框 其中包含有关每个用户访问过哪些城市的信息 df visited lt data frame user c john john claire claire doe doe city c Antananarivo Barcelo
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 在列标题和配对变量中嵌入数据的数据透视表

    假设我有这样的数据 不幸的是 变量值嵌入在列名称中 library tidyr library dplyr dat lt tribble group var1 var meta1 var2 var meta2 group1 5 2 cat
  • ggplot 按因子和梯度颜色

    我正在尝试绘制一个对两个变量 一个因子和一个强度 进行着色的图 我希望每个因素都是不同的颜色 并且我希望强度是白色和该颜色之间的渐变 到目前为止 我已经使用了诸如对因子进行分面等技术 将颜色设置为两个变量之间的相互作用 并将颜色设置为因子并
  • 如何在闪亮的observeEvent中监听多个事件表达式

    我想要两个不同的事件触发观察者 有人建议here https stackoverflow com questions 34731975 how to listen for more than one event expression wit
  • 如果落在 R 中另一个数据集中的两个变量定义的范围内,则从一个数据集中获取变量值

    我有一个关于 R 中日期操作的问题 我已经查了好几天了 但在网上找不到任何帮助 我有一个数据集 其中有 id 和两个日期 另一个数据集具有相同的 id 变量 日期和价格 例如 x data frame id c A B C C date1
  • data.table 查找值并翻译

    像许多人一样 我是 R 新手 我有一个大数据集 500M 行 我已将其读取到 data table 中logStats其中有如下数据 head logStats 15 time pid mean 1 2014 03 10 00 00 00
  • 关于在 LyX 中生成和交叉引用 knitr 图的意见

    我的目标是在 LyX 中包含一个knitr图 我可以在我的文档中交叉引用 我 插入了浮动图像 添加了标题和标签 在浮动图像中插入了 ERT 而不是图像 我所做的图片如下 我在这里检查过类似的问题 但没有人做我所做的事情 所以我在这里问 有没
  • Rcpp 包不包含 Rcpp_precious_remove

    我一直在尝试创建数据库并安装 DBI 包 但仍然遇到此错误 我重新安装了 DBI 和 RSQLite 软件包 但它们似乎不起作用 library DBI con lt dbConnect RSQLite SQLite dbname memo
  • k折交叉验证 - 如何自动获得预测?

    这可能是一个愚蠢的问题 但我只是找不到一个包来做到这一点 我知道我可以编写一些代码来获得我想要的东西 但如果有一个函数可以自动完成它那就太好了 所以基本上我想对 glm 模型进行 k 倍交叉验证 我想自动获取每个验证集的预测和实际值 因此
  • 错误:美学必须是长度一,或者在省略 NA 时与 dataProblems:personCategoryz 的长度相同

    我正在尝试使用泰坦尼克号数据集创建一个图表 该数据集查看女性 儿童和男性及其生存率 我创建了新的类别来读取数据 但当我尝试超越该点时 不断出现错误消息 当我运行一个图表来显示这一点时 它显示得很好 只是它有一个单独的 NA 数据类别 所以我
  • R ggplot:加权 CDF

    我想使用绘制加权 CDFggplot 一些旧的非 SO 讨论 例如this https stat ethz ch pipermail r help 2012 October 337288 html从 2012 年起 建议这是不可能的 但我想
  • R中的for循环和if函数

    我正在用 R 中的 if 函数编写一个循环 表格如下 ID category 1 a 1 b 1 c 2 a 2 b 3 a 3 b 4 a 5 a 我想使用 for 循环和 if 函数添加另一列来计算每个分组的 ID 如下所示的计数列 I
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30

随机推荐

  • 长时间偶然的 Young 垃圾收集暂停

    我们调整 GC 以最小化 stop the world 暂停 Perm 和 Tenured 一代表现良好 Young在大多数情况下工作正常 暂停通常不超过500ms 注意 Times user 0 35 sys 0 02 real 0 06
  • 更新 iPhone 应用程序行为

    我为iPhone设备开发了一款与数据库相关的应用程序 SQlite数据库 现在我想用更多功能更新该应用程序 我想推送同一应用程序的更新 在这里 我在推送更新时更关心用户数据 所以我的问题是 如果我将推送更新 那么更新是否会清除 sqlite
  • 关于 C++ 中的结构化异常 (SEH),我应该了解哪些信息?

    每个 C 开发人员都应该了解有关结构化异常的哪些要点 它们是相当于 Unix 信号的 Win32 可以让您捕获 CPU 异常 例如访问冲突 非法指令 除零等 使用正确的编译器选项 对于 Visual C 为 EHa C 异常使用与堆栈展开相
  • 如何使用 Apache MINA SSHD 阻止 SFTP 删除操作

    我正在尝试使用 Apache Mina SSHD 创建自定义 sftp 服务器 到目前为止我的代码 SshServer sshd SshServer setUpDefaultServer sshd setPort PORT NUMBER s
  • 在数据库中插入数据集记录

    我需要将数据集记录 C 插入 MS Access 数据库表中 我需要批量插入记录 我怎样才能在 C 中做到这一点 对于此类任务 请考虑使用数据适配器 http msdn microsoft com en us library system
  • Prometheusmetrics_path 中的问号被编码

    由于 Prometheus 仅支持文本指标和许多工具返回 json 格式的指标 如 Finatra Spring Boot 因此我创建了一个简单的代理 它将 json 转换为文本 因为我想将它用于多个源 所以要从中检索实际指标的目标是通过查
  • Websocket 消息是否会无序到达?

    如果我们通过同一个 html5 websocket 发送两条消息 彼此间隔毫秒 理论上 消息到达的顺序是否可能与发送的顺序不同 简短回答 不 长答案 WebSocket 通过 TCP 运行 因此在该级别上 EJP 的答案适用 WebSock
  • 运行应用程序脚本后,Google 电子表格冻结

    我的 Google 电子表格中附加了一个应用程序脚本 有一个函数可以在电子表格中执行很多操作 这就是它的作用 创建一个新工作表 设置新工作表的列标题 将数据复制到新工作表中 设置公式 删除多余的列 删除多余的行 在现有工作表中添加一行 工作
  • 指定并保存精确尺寸(以像素为单位)的图形

    假设我有一张尺寸为 3841 x 7195 像素的图像 我想将图形的内容保存到磁盘 从而生成一个图像精确尺寸我以像素为单位指定 没有轴 没有标题 只是图像 我个人并不关心 DPI 因为我只想指定图像在屏幕中在磁盘中所占的大小以像素为单位 我
  • Google 将自动完成功能设置为在 Windows 移动版 IE 浏览器中不起作用

    我们正在为我们的产品建立一个移动网站ridingo http www ridingo com 我们在我们的网站上广泛使用谷歌地点自动完成功能 这用于在用户键入时向他们提供建议 我们在多个浏览器和设备上对此进行了测试 这在 Android 设
  • Android 意图输入 Google Play 音乐应用程序的搜索查询

    您好 我正在尝试使用我的应用程序提供的字符串自动填充 Google Play 音乐上的搜索栏 我目前打算打开 Google Play 音乐 但我无法找到正确的参数来填充 Google Play 音乐上的搜索栏 这是我的代码 Intent i
  • Android webview 性能缓慢

    我正在用 javascript 编写一个游戏 这个应用程序在我的浏览器上运行良好 速度很快 但我在使用 android webview 运行它时遇到了一些麻烦 启动应用程序需要 5 秒或更长时间 我认为这有点慢 但也许这是正常的 在游戏菜单
  • 如何将只读数据发送到其他线程而不进行复制?

    我正在尝试将只读数据的 视图 发送到另一个线程进行处理 基本上主线程确实工作 不断更新一组数据 每当发生更新时 主线程应该将更新的数据发送到其他线程 在那里它们将以只读方式处理它 我不想复制数据 因为它可能非常大 无论如何 主线程还在内存中
  • Linux文件中的List.h?

    in linux include linux list h https github com torvalds linux blob 305230142ae0637213bf6e04f6d9f10bbcb74af8 include linu
  • 如何使用数组作为条件自动过滤

    我刚刚学习如何使用数组 并且对如何使用数组作为自动过滤条件的输入有点困惑 我想设置一个包含值的数组 然后使用这些相同的值过滤 Excel 电子表格 我执行了下面的代码 但是当我尝试自动过滤时它不断抛出错误 这是我的代码 Dim I As I
  • 通过拖放将文件从 Qt 5.2 应用程序复制到文件系统

    如何在 Qt 5 2 应用程序中生成文件拖放操作 以在文件系统 Windows Mac 等 中执行复制 或移动 更具体地说 生成具有 1 个以上文件路径的拖动 当将这些文件拖放到系统上时 将对这些文件执行复制 移动 是否有一个标准的 mim
  • window.opener 在 Windows 版 Excel 中不起作用

    我已经构建了一个 Excel 加载项 它通过以下方式打开一个弹出窗口window open 然后加载项与弹出站点进行通信 我刚刚意识到它在 Windows 的 Excel 中不起作用 原因是弹出窗口无法通过以下方式获取主机 window o
  • 错误“冲突解决程序拒绝突变。”当在放大中删除时

    我有一个简单的全栈放大应用程序 这是我的模型 type Note model auth rules allow public id ID name String description String image String NoteTyp
  • 水平进度条添加圆圈指示器

    Im trying to create a custom horizontal progressBar that will have certain amount of circle indicators in it like this o
  • R重新排列数据框:一些行到列

    我什至不知道如何正确地命名问题 假设我有一个数据框 d 当前数据框 d lt data frame sample LETTERS 1 2 cat letters 11 20 count c 1 10 sample cat count 1 A