- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 tidyr 的 pivot_wider 函数同时转置两种值,如 vignette('pivot') 下的“每行多个观察”示例所示,但我不断收到奇怪的错误消息.
这是一个正在发生的事情的例子:
set.seed(5)
testdat <- data.frame(matrix(nrow=5,ncol=5))
colnames(testdat) <- c('rating','percent.Female','percent.Male','se.Female','se.Male')
testdat$rating <- c('Very good','Good','OK','Bad','Very bad')
testdat$percent.Female <- rnorm(5,.5,.2)
testdat$percent.Male <- 1 - testdat$percent.Female
testdat$se.Female <- rnorm(5,0.1,0.003)
testdat$se.Male <- rnorm(5,0.1,0.003)
testdat
rating percent.Female percent.Male se.Female se.Male
1 Very good 0.3318289 0.6681711 0.09819128 0.10368289
2 Good 0.7768719 0.2231281 0.09858350 0.09759466
3 OK 0.2489016 0.7510984 0.09809389 0.09675882
4 Bad 0.5140286 0.4859714 0.09914268 0.09952740
5 Very bad 0.8422882 0.1577118 0.10041432 0.09678472
testdat %>% pivot_longer(cols=-"rating",names_sep=".",names_to=c(".value","gender"),values_drop_na=T)
Error: Expected a vector, not NULL
Call `rlang::last_error()` to see a backtrace
In addition: Warning message:
Expected 2 pieces. Additional pieces discarded in 4 rows [1, 2, 3, 4]
我几乎完全按照小插图 - 为什么这不起作用?
最佳答案
代码出现问题是因为选项 names_sep="."
(您会在枢轴小插图中注意到,名称由 _ 而不是 . 分隔)
.
是一个特殊字符,用于匹配任何单个字符。如果你想指定你的变量名由实际的 .
字符本身分隔,你需要使用 names_sep="\\."
来转义它。
通过适当的转义,这个例子是这样的:
testdat %>%
pivot_longer(cols=-"rating", names_sep="\\.",
names_to=c(".value","gender"), values_drop_na=TRUE)
# A tibble: 10 x 4
rating gender percent se
<chr> <chr> <dbl> <dbl>
1 Very good Female 0.332 0.0982
2 Very good Male 0.668 0.104
3 Good Female 0.777 0.0986
4 Good Male 0.223 0.0976
5 OK Female 0.249 0.0981
6 OK Male 0.751 0.0968
7 Bad Female 0.514 0.0991
8 Bad Male 0.486 0.0995
9 Very bad Female 0.842 0.100
10 Very bad Male 0.158 0.0968
关于r - 在多列上使用 tidyr 的 pivot_wider 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60559808/
我正在为网络元分析准备数据,但在输入列时遇到困难。 如果我有这个初始数据集: Study Trt y sd n 1 1 -1.22 3.70 54 1
这个问题在这里已经有了答案: How do I get a contingency table? (6 个回答) Faster ways to calculate frequencies and ca
我有一个看起来像这样的数据集 site % unite(D01, D01_1, D01_2, sep = "/", remove = TRUE) %>% unite(D02, D02_1, D
我有以下数据: > data data unique grouping value 1 1 a 15 2 2
我注意到了 tidyr(0.4.0)使用 spread 时对值列进行排序,如 tidyr(0.3.1)按照它们在 gather 之前的顺序返回值列. 可重现的示例 1: library(dplyr)
我正在学习 dplyr,来自 plyr,我想从 xtabs 的输出生成(每组)列(每交互)。 简短摘要:我得到 A B 1 NA NA 2 当我想要 A B 1 2 xta
我有一个 data.frame,其中一些单元格包含逗号分隔值的字符串: d % separate_rows(b) %>% separate_rows(c) # a b c # 1
Tidy eval now supports glue strings 所以这很好用: my_summarise5 % mutate( "mean_{{mean_var}}" :=
我有看起来像这样的数据 df = data.frame(name=c("A","A","B","B"), group=c("g1","g2","g1","g2"),
我有一个面板结构的数据框:两年内每个单元的 2 个观察值: library(tidyr) mydf % spread(year, value) %>% filter(2012 > 0.5) 以下工作但
我正在尝试使用 tidyr 包中的 extract 将包含单个字符串的列拆分为 3 个单独的列。该问题的最小工作示例如下: # A tibble: 3 x 1 question_codes
我在 R 中有以下数据框 my_df_test my_df_test V1 V2 V3 V4 V5 V6_S1 V6_S2 V7_S1 V7_S2 1 1 A S1
我有一个看起来像这样的数据框。我将其命名为“df_raw”。 "HRHHID\t15\tHOUSEHOLD IDENTIFIER\t(Part 1)\t1- 15" "HRMONTH\t2\tMONT
我搜了又搜,找到了类似的东西,但没有什么是对的。希望这个问题没有得到解答。 假设我有一个包含 Y、N 的列,有时还有额外的信息 df%separate('Surgery',c("Surgery
我想使用 tidyr 将数据分布在多个列上。 dat % gather(variable, value, -(ID:col1)) %>% unite(temp, col1, variab
tidyr 的扩展函数仅接受不带引号的列名。有没有办法可以传递包含列名的变量例如 # example using gather() library("tidyr") dummy.data % gath
我的问题类似于 this question .我正在尝试 tidyr::gather多列。但是,链接中提供的解决方案并不理想,因为所有列中的属性通常不相同,因此它们被删除。 请注意,我知道如何使用基础
我在 R 中有以下数据框 my_df_test my_df_test V1 V2 V3 V4 V5 V6_S1 V6_S2 V7_S1 V7_S2 1 1 A S1
我有一个看起来像这样的数据框。我将其命名为“df_raw”。 "HRHHID\t15\tHOUSEHOLD IDENTIFIER\t(Part 1)\t1- 15" "HRMONTH\t2\tMONT
这个问题在这里已经有了答案: Reshaping data.frame from wide to long format (8 个答案) 关闭 2 年前。 我正在尝试学习如何使用 tidyr 将宽数
我是一名优秀的程序员,十分优秀!