- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 R
中将数据框从长数据框转换为宽数据框。我正在尝试使用 pivot_wider()
将所有列旋转得更宽(唯一标识观察值的列除外)。这是一个最小的工作示例:
library("tidyr")
set.seed(12345)
sampleSize <- 10
timepoints <- 3
raters <- 2
data_long <- data.frame(ID = rep(1:sampleSize, each = timepoints * raters),
time = rep(1:timepoints, times = sampleSize * raters),
rater = rep(c("a","b"), times = sampleSize * timepoints),
v1 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
v2 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
v3 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
v100 = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
vA = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
vB = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
vC = sample.int(99, sampleSize * timepoints * raters, replace = TRUE),
vZZ = sample.int(99, sampleSize * timepoints * raters, replace = TRUE))
数据如下:
> tibble(data_long)
# A tibble: 60 x 11
ID time rater v1 v2 v3 v100 vA vB vC vZZ
<int> <int> <chr> <int> <int> <int> <int> <int> <int> <int> <int>
1 1 1 a 14 56 30 75 66 22 8 73
2 1 1 b 90 44 99 8 36 72 1 78
3 1 2 a 92 35 93 46 4 68 39 52
4 1 2 b 51 91 50 67 43 72 99 74
5 1 3 a 80 34 31 31 21 52 7 23
6 1 3 b 24 86 25 86 20 43 74 89
7 2 1 a 58 51 48 60 6 56 66 37
8 2 1 b 96 95 76 1 78 2 65 3
9 2 2 a 88 26 92 86 7 37 84 15
10 2 2 b 93 55 25 62 27 39 73 85
# ... with 50 more rows
在这个例子中,我有三个列来唯一标识所有观察值:ID
、time
和 rater
。我想通过 rater
加宽所有其他列(即,排除 ID
和 time
列)。我的预期输出是:
# A tibble: 30 x 18
ID time v1_a v1_b v2_a v2_b v3_a v3_b v100_a v100_b vA_a vA_b vB_a vB_b vC_a vC_b vZZ_a vZZ_b
<int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
1 1 1 14 90 56 44 30 99 75 8 66 36 22 72 8 1 73 78
2 1 2 92 51 35 91 93 50 46 67 4 43 68 72 39 99 52 74
3 1 3 80 24 34 86 31 25 31 86 21 20 52 43 7 74 23 89
4 2 1 58 96 51 95 48 76 60 1 6 78 56 2 66 65 37 3
5 2 2 88 93 26 55 92 25 86 62 7 27 37 39 84 73 15 85
6 2 3 75 2 23 55 28 8 66 74 65 92 58 10 91 65 7 44
7 3 1 86 94 7 87 78 85 38 87 36 49 89 83 33 34 32 38
8 3 2 10 75 12 15 21 18 56 77 54 17 61 92 18 50 98 27
9 3 3 38 81 46 90 20 47 88 15 33 95 66 19 12 27 84 52
10 4 1 32 38 88 68 77 71 10 81 21 54 33 16 90 41 29 72
# ... with 20 more rows
我可以使用以下语法加宽任何给定的列:
data_long %>%
pivot_wider(names_from = rater, values_from = c(v1, v2))
因此,我可以通过在向量中手动输入所有列来加宽所有列:
data_long %>%
pivot_wider(names_from = rater, values_from = c(v1, v2, v3, v100, vA, vB, vC, vZZ))
但是,如果我有很多列,这会变得笨拙。另一种方法是通过指定列的范围来加宽列:
data_long %>%
pivot_wider(names_from = rater, values_from = v1:vZZ)
但是,如果要加宽的所有列不在一个范围内,例如如果 ID 列散布在整个数据框中(尽管可以指定多个范围),则此方法效果不佳。
有没有一种方法可以使用 pivot_wider()
加宽 ALL 列除了我指定为唯一标识每个列的任何列使用 id_cols
(即 ID
和 time
)进行观察。我希望该解决方案可以扩展到我有很多列的情况(因此不想指定变量名称或要扩大的变量范围)。
最佳答案
正如我们所知,前 3 列应该是固定的,在 values_from
中的那些列名上使用 -
library(dplyr)
library(tidyr)
data_long %>%
pivot_wider(names_from = rater, values_from = -names(.)[1:3])
或者如果我们已经创建了一个对象
id_cols <- c("ID", "time")
data_long %>%
pivot_wider(names_from = rater, values_from = -all_of(id_cols))
关于r - 使用 R/tidyverse 中的 pivot_wider() 将所有列旋转得更宽(ID 列除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68927381/
函数参数中或显示尺寸时(高度,宽度)的顺序是否有约定? 最佳答案 我不知道大量的语言,但我使用过的语言(宽度,高度)。它更适合沿着 (x, y) 坐标线。 关于language-agnostic -
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
有没有办法显示自定义宽度/高度的YouTube视频? 最佳答案 在YouTube网站上的this link中: You can resize the player by editing the obj
如何从此表单获取数据(数据的长表示): import pandas as pd df = pd.DataFrame({ 'c0': ['A','A','B'], 'c1': ['b',
我在让宽度为 900px 的页面在宽度低于 900px 的分辨率下看起来不错时遇到了一些麻烦。这包括智能手机等移动设备。看起来我在页面上放大了,但无法滚动或缩小。我的页面包装器被定义为以屏幕为中心。这
我有一个包含一个表的 div,它有另一个带有动态变化文本的 div。div 有样式 overflow: hidden; white-space: nowrap; text-overflow: elli
我一直在愚弄下面的html代码。我已将 div id ="mainWide"设置为 2500 像素的宽度,这比我的屏幕还宽,我希望在主浏览器窗口中有一个水平滚动条,而不是在 div block 本身中
当我的屏幕浏览器窗口在 992px-1199px 之间时,我的文章元素比它们的父 div (.wrapper) 更宽。所以在这个屏幕宽度下,面板重叠并且看起来不对。 在所有其他屏幕宽度下,我的代码都准
我在对齐某些行时遇到了一些问题。我正在显示一个占据视口(viewport) 100% 高度的部分。因此,当您在屏幕上查看此部分时,您只会看到此部分。 在这个部分中,我有一个标题和副标题。标题应显示在节
为什么表单输入字段比其父 div 宽?宽度应用于文本 div,但不应用于其中包含表单字段的 div。为什么会这样? See the livecode here. .parent { width:
我想让这个标题 100% 宽。我在 jsfiddle 上试过这个,但是左边和右边还有一些余量。 CSS: #header { background: url("../img/top-bg.png
我的页面宽度有问题。无论我尝试什么,它的左边或右边都有白边(默认情况下在右边,如果我使用 margin-right:0 则在左边)。如果我使用 margin:0 比它留在右边。尝试了我所知道的一切,但
我有一个带有背景图片的宽 div。 div 的宽度为 1100 像素,当浏览器窗口小于该宽度时,会出现滚动条。有什么办法可以避免滚动条吗?那不是任何黑客。现在我知道我可以把它放在 body image
我有一个您可以访问的应用程序 here .当您打开应用程序时,只需单击加号按钮,您就会看到一个带有搜索栏的模态窗口。 现在请执行这两个搜索: 搜索 1:AAA 搜索 2:AAE 您会看到,在 AAE
这个问题在这里已经有了答案: Does element width include padding? (5 个答案) 关闭 7 年前。 HTML CSS .wrap{widt
我正在尝试在工具栏中创建一个自定义显示,类似于 Xcode 工具栏中心的信息 Pane 。 我们如何创建一个宽度超过 32 点的 NSToolbarItem? 框架始终将其限制为 32 点,即使最小和
我想将df1转换成df2 旧示例数据框 df1 df1 长),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/359
我正在使用 JavaScript 代码在 FireBase/FireStore 中上传图像。 核心功能已经可以运行,我可以上传,但我还需要在上传之前检查图像的大小。这就是我很乐意获得帮助的地方。 以下
如何在 Tkinter 中设置/更改 ttk.Separator 对象的长度/宽度? ttk.Separator(self, orient='horizontal').grid(c
我有一个简单的问题。为什么 a 不会自动调整其内容的大小?像这样: Test 返回 width:100%,尽管我希望“Test”这个词简单地居中。有什么想法吗? 最佳答案 您的问题与 HT
我是一名优秀的程序员,十分优秀!