- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为数据集中由 core.vars 定义的以下变量重新编码以下值 < 4 = -1, 4 = 0, > 4 = 1,并仍将其余变量保留在数据框中。
temp.df <- as.tibble (mtcars)
other.vars <- c('hp', 'drat', 'wt')
core.vars <- c('mpg', 'cyl', 'disp')
temp.df <- rownames_to_column (temp.df, var ="cars_id")
temp.df <- temp.df %>% mutate_if (is.integer, as.numeric)
我尝试了多种方法来实现这一点。使用case_when
, mutate
, recode
但没有运气。 recode
需要一个向量,所以我的想法是使用 case_when
创建一个向量或mutate
对于每个感兴趣的变量,然后重新编码值。但他们失败了。
temp.df <- temp.df %>%
mutate_at(.vars %in% (core.vars)), '< 4' = "-1", '4' = "0", '> 4' = "1")
Error: unexpected ',' in "temp.df <- temp.df %>% mutate_at(.vars %in% (core.vars)),"
temp.df <- temp.df %>%
mutate_at(vars(one_of(core.vars)), '< 4' = "-1", '4' = "0", '> 4' = "1")
Error in inherits(x, "fun_list") : argument ".funs" is missing, with no default
temp.df <- temp.df %>%
mutate (temp.df, case_when (vars(one_of(core.vars)), recode ('< 4' = "-1", '4' = "0", '> 4' = "1")))
Error in mutate_impl(.data, dots) : Column
temp.df
is of unsupported class data.frame
temp.df <- temp.df %>%
case_when (vars(one_of(core.vars)), recode ('< 4' = "-1", '4' = "0", '> 4' = "1"))
Error in recode.character(
< 4
= "-1",4
= "0",> 4
= "1") : argument ".x" is missing, with no default
temp.df <- temp.df %>% rowwise() %>% mutate_at(vars (core.vars),
funs (case_when (
recode(., '< 4' = -1, '0' = 0, '>4' = 1)
))) %>%
ungroup()`
Error in mutate_impl(.data, dots) : Evaluation error: Case 1 (
recode(mpg,
< 4= -1,
0= 0,
>4= 1)
) must be a two-sided formula, not a double. In addition: Warning message: In recode.numeric(mpg,< 4
= -1,0
= 0,>4
= 1) : NAs introduced by coercion
论坛上之前的问题包括如何对单个变量执行此操作,但是正如前面提到的,我有 100 个变量和 300 个样本,因此不能逐行单独输入它们。
理想情况下,最好不要创建单独的数据框然后进行连接,或者像 mutate 那样创建多个单独的变量。
我确信有一个 for 循环和/或 ifelse 方法,但我正在尝试使用 tidyverse 来实现目标。任何建议都会有帮助。
最佳答案
temp.df %>%
mutate_at(vars(one_of(core.vars)),
function(x) case_when(
x < 4 ~ -1,
x == 4 ~ 0,
x > 4 ~ 1
))
输出
# A tibble: 32 x 12
cars_id mpg cyl disp hp drat wt qsec vs am gear carb
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Mazda RX4 1 1 1 110 3.9 2.62 16.5 0 1 4 4
2 Mazda RX4 Wag 1 1 1 110 3.9 2.88 17.0 0 1 4 4
3 Datsun 710 1 0 1 93 3.85 2.32 18.6 1 1 4 1
4 Hornet 4 Drive 1 1 1 110 3.08 3.22 19.4 1 0 3 1
5 Hornet Sportabout 1 1 1 175 3.15 3.44 17.0 0 0 3 2
6 Valiant 1 1 1 105 2.76 3.46 20.2 1 0 3 1
7 Duster 360 1 1 1 245 3.21 3.57 15.8 0 0 3 4
8 Merc 240D 1 0 1 62 3.69 3.19 20 1 0 4 2
9 Merc 230 1 0 1 95 3.92 3.15 22.9 1 0 4 2
10 Merc 280 1 1 1 123 3.92 3.44 18.3 1 0 4 4
关于R:使用 recode、mutate 和 case_when 重新编码变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619942/
如果我在管道中使用重新编码,则会收到错误: df % recode(unit, .missing="g") Error in UseMethod("recode") : no applicable
我想将一个命名向量或两个向量传递给 dplyr::recode。假设我有: library(dplyr) set.seed(1) x 或者使用do.call和recode do.call(dplyr
在分析数据时我们经常会遇到将变量值转换成其他的值的情况(如:将连续变量转成分类变量)这时就需要我们对原有数据进行重新编码。本文将介绍R软件中常用的三种重编吗方法: 1、使用逻辑判断式编码。 2、
表 1$subject 包含变量“生物学”、“化学”和“物理学”。 对于表 2,我想重新编码,将所有生物/化学实例替换为 1,将物理的所有实例替换为 0。 我尝试了以下代码,因为我相信使用 recod
我经常在 library(car) 中使用“重新编码”函数来重新编码变量中的级别。直到今天,我的代码都运行良好,但现在却出现了错误。 df 等没有任何变化,不确定发生了什么。 可能有人可以启发我! 我
重新编码是调查数据的常见做法,但最明显的路线需要花费更多的时间。 使用提供的样本数据完成相同任务的最快代码 system.time()在我的机器上获胜。 ## Sample data dat sys
我有两个列表(来自多波调查),如下所示: X1 X2 1 NA NA 2 NA NA 如何轻松地将其合并到第三项中,其中第三列始终采用 X1 或 X2 列的非 NA 值,并在两个值均为 NA 时
我正在尝试使用 dplyr::recode() 重新编码字符变量和 stringr::str_detect() .我意识到这可以通过 dplyr::case_when() 来完成,如此处所述:http
我想为数据集中由 core.vars 定义的以下变量重新编码以下值 4 = 1,并仍将其余变量保留在数据框中。 temp.df % mutate_if (is.integer, as.numeric
我一直在研究 R purrr 包,但遇到了障碍。我在下面创建了一些模拟数据,它们代表了我的数据实际外观的一小部分。 library(tidyverse) my_data % mutate(new_
我有 8GB 的 csv 文件和 8GB 的内存。每个文件每行有两个字符串,格式如下: a,c c,a f,g a,c c,a b,f c,a 对于较小的文件,我删除了重复项,计算前两列中每行
我正在使用 dplyr 重新编码。将值重新编码为 NA 时出现错误,但不是 NaN。这是一个例子: df % mutate(var=recode(var,`2`=0,`3`=NaN)) 工作正常,而
我有18列的数据框。列2到13包括数值,如0、1、2、4...我想根据范围将它们重新编码为三类:。我的尝试奏效了,但效率不高:。我很感谢你的帮助。
我有18列的数据框。列2到13包括数值,如0、1、2、4...我想根据范围将它们重新编码为三类:。我的尝试奏效了,但效率不高:。我很感谢你的帮助。
一段时间以来,我一直在尝试解决相当普遍的问题,主要包括三个步骤: 获取具有指定 URL 的 html 页面并将其内容存储在一个字符串中 从 html 元信息或 HTTP header 中检测内容编码
我是一名优秀的程序员,十分优秀!