检查一个向量中的值是否小于另一个向量(具有不同长度)中的值,并用Y / N答案填充表格

夏洛特姆

在此先感谢您的帮助!

目标:我正在查看住房负担能力数据,构建了一个按职业显示住房负担能力的工具。我有一个职业及其中位数工资的数据框,以及该地区所有房地产的所有房屋价值的数据框。

挑战:我正在寻找一种方法,将每个房屋价值与特定于每个职业的可负担性指标进行比较,如果房屋价值低于实际价值,则使用TRUE / FALSE,Y / N或1/0填充数据框。指标。最终结果将是带有原始值作为观察值的数据帧,每个职业一列。

下面是一些示例代码,可以更好地说明问题:

我正在尝试结合以下内容:

Job          Median Wage  Can Afford
Lawyer       104756       272365.5
Bus Driver   26598        69154.8
Retail Sales 48923        127199.8

还有这个:

Property Value
927346
12345
87492
12734
73642

要创建这样的东西:

Value   Lawyer   Bus Driver   Retail Sales
927346  N        N            N
12345   Y        N            Y
87492   Y        N            Y
12734   Y        Y            Y
73642   Y        Y            Y

运行Rstudio 3.5。任何想法将不胜感激!

阿克伦

我们可以使用map2frompurrr来做到这一点。遍历“作业”,“ MedianWage”的各个元素的行,检查第二个数据集中的“ PropertyValue”是否小于“ MedianWage”的2.6倍,以创建逻辑列并将list数据集的绑定到单个“ df2”的第一列

library(tidyverse)
map2(df1$Job, df1$MedianWage, ~ 
                           df2 %>% 
                            transmute(!! .x :=  PropertyValue < 2.6 * .y)) %>% 
     bind_cols(df2, .)

或搭配 pmap

pmap(df1, ~
       df2 %>% 
         transmute(!! ..1 := PropertyValue < 2.6 * ..2)) %>% 
  bind_cols(df2, .)
#   PropertyValue Lawyer Bus Driver Retail Sales
#1        927346  FALSE      FALSE        FALSE
#2         12345   TRUE       TRUE         TRUE
#3         87492   TRUE      FALSE         TRUE
#4         12734   TRUE       TRUE         TRUE
#5         73642   TRUE      FALSE         TRUE

可以使用ifelse或通过将逻辑向量转换为数字索引来将其更改为“ Y / N”

pmap(df1, ~
         df2 %>% 
            transmute(!! ..1 := c("N", "Y")[1 + (PropertyValue < 2.6 * ..2)])) %>%
    bind_cols(df2, .)

或者使用sapplybase R

cbind(df2, sapply(setNames(2.6 * df1$MedianWage, df1[[1]]), `>`, df2$PropertyValue))

注意:最好使用逻辑列(TRUE/FALSE)代替Y/N

数据

df1 <- structure(list(Job = c("Lawyer", "Bus Driver", "Retail Sales"
), MedianWage = c(104756L, 26598L, 48923L)), .Names = c("Job", 
"MedianWage"), class = "data.frame", row.names = c(NA, -3L))

df2 <- structure(list(PropertyValue = c(927346L, 12345L, 87492L, 12734L, 
73642L)), .Names = "PropertyValue", class = "data.frame", row.names = c(NA, 
-5L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用其他 2 填充表格并检查另一个表格中的值

在R中初始化一个向量,并用值填充它

填充向量直到另一个向量中的给定条件

如果数据帧长度不同,如何用R中另一个数据帧的值填充列?

使用相对于向量中第一个值的值填充空向量

长度为N的向量以及来自另一个向量的元素(重复)

在另一个工作表中查找值以填充表格

创建一个向量,其值具有另一个向量中不同值的计数

用向量中的最后一个非空值填充空值

是否有一个函数可以让我根据另一个单元格中的值范围用文本填充单元格

如何从另一个表中查找值以填充现有表列?

Google表格:如何根据不同列中另一个值范围的内容来更新一个列中的值范围的单元格?

用同一个表中的另一个值填充空值

pyspark:如何在具有条件的列中填充值并用另一个数据框中的列替换

用另一个单元格Google表格中的值填充空单元格

多次使用Numpy Mask数组,并用另一个3D数组中的值填充3D数组中的nans

检查列表的n个成员是否在python的另一个列表中

根据列中的值填充另一个数据框的值

用另一个数据集中的列中的值填充空值

用另一个表中的列值填充一个表中的列和工厂

在表格中,每一行都有一个编辑按钮。显示或隐藏按钮取决于此行中的另一个值

如何检查另一个Google表格中是否存在呼叫?

如何对具有不同条件的两列中的值进行算术运算,然后在一个查询中合并答案?

尝试使用来自另一个不同结构的数据帧的值填充数据帧中的列

使用另一个数据框中的指定值填充一列

如何用另一个特征向量填充一个特征向量?

按位置 [R] 从另一个向量填充向量上的空元素

创建模板函数以根据大小用另一个向量填充向量

JAVA使用.compareTo对向量进行排序并通过填充另一个向量