gpt4 book ai didi

r - R中的矢量化条件输出(可能使用purrr)?

转载 作者:行者123 更新时间:2023-12-03 18:39:35 27 4
gpt4 key购买 nike

我正在尝试创建数据框的矢量化条件输出。
假设我有数据框:

data <- data.frame(a = c(5, 3, 9, 5),
b = c(1, 2, 3, 4),
c = c(5, 3, 9, 5),
d = c(5, 3, 9, 5))
和阈值:
threshold <- c(a1 = 4, b1 = 2, c1 = 8, d1 = 2)
我想要的是一个新的数据集,表明a的每个值是否大于或等于阈值向量(a1)中的对应值,b的每个值是否大于或等于阈值向量(b1)中的对应值), 等等。
所以期望的输出是:
desired_data <- data.frame(a = c(1, 0, 1, 1),
b = c(0, 1, 1, 1),
c = c(0, 0, 1, 0),
d = c(1, 1, 1, 1))
我想尽可能简单地做到这一点,最好使用 purrr 函数。
这是一个错误的尝试: desired_data <- map(data >= threshold)我觉得 map2 可能很有希望,并检查了文档(例如 herehere ),但我似乎无法获得基于映射的条件输出的语法。
谢谢!

最佳答案

你有 map2() 的想法:因为数据框是一个列列表,你可以在列上循环。小困难是将所有内容放在最后的数据框中,如果您使用 map2_df() ,它会自动完成。

map2_df(threshold, data, ~ .y >= .x)
如果您希望将这些逻辑值转换为整数:
1L * map2_df(threshold, data, ~ .y >= .x)
# a1 b1 c1 d1
# 1 1 0 0 1
# 2 0 0 0 1
# 3 1 1 1 1
# 4 1 1 0 1

关于r - R中的矢量化条件输出(可能使用purrr)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64885853/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com