如何使用基于列表列中嵌套数据的条件语句在主数据框中创建新变量?

如果我们使用汽车数据集:

library(dplyr)

cars_nest <- mtcars %>%
  group_by(cyl) %>%
  nest()

并希望创建一个二进制变量,其中carb&gt;2的任何值等于1,否则为0.我try 了以下操作,但出现错误.

cars_nest  <- cars_nest |> 
  mutate(test = ifelse(any(cars_nest$carb) > 2, 1, 0))

推荐答案

代码中有几个问题:

  1. 您的any应该包括条件(即any(... > 2))
  2. 您没有在mutate中使用cars_nest变量,这是DataFrame对象的名称,而不是列(它应该是data列)
  3. 做这种手术需要rowwise英镑.

其中一个建议是:

  1. 由于逻辑比较(... > 2)的输出已经是逻辑的,您可以利用as.integer将其关联为整数,而不使用ifelse

因此,代码应该是:

library(tidyverse)

cars_nest <- mtcars %>%
  group_by(cyl) %>%
  nest() 
  
cars_nest %>% 
  rowwise() %>% 
  mutate(test = as.integer(any(data$carb > 2)))
  # or mutate(test = ifelse(any(data$carb > 2), 1, 0))

# A tibble: 3 × 3
# Rowwise:  cyl
    cyl data                test
  <dbl> <list>             <dbl>
1     6 <tibble [7 × 10]>      1
2     4 <tibble [11 × 10]>     0
3     8 <tibble [14 × 10]>     1

R相关问答推荐

使用R中的小鼠()进行插补后观察次数显着变化

通过绘图 Select 线串几何体并为其着色

从多个前置日期中获取最长日期

无法在我的情节中表现出显着的差异

无法运行通过R中的Auto.arima获得的ARIMA模型

r中的stat_difference函数不起作用

从嵌套列表中智能提取线性模型系数

基于现有类创建类的打印方法(即,打印tibles更长时间)

抖动点与嵌套类别变量箱形图的位置不对齐

隐藏e_mark_line的工具提示

根据选中三个复选框中的一个或两个来调整绘图

使用外部文件分配变量名及其值

使用R闪光显示所有数据点作为默认设置

R:从geom_ol()中删除轮廓并导出为pdf

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

R如何计算现有行的总和以添加新的数据行

随机森林的带Shap值的蜂群图

如何使用前缀作为匹配来连接数据帧?

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

如何为混合模型输出绘制不同的线型?