gpt4 book ai didi

r - 在R中使用带有多个参数的匿名函数

转载 作者:行者123 更新时间:2023-12-04 13:20:13 26 4
gpt4 key购买 nike

我试图在数据框中生成新的变量,该新变量以该数据框中的两个(或更多)其他变量为条件。我相信R中的循环函数(即lapply,sapply等)对于此目的是有用且高效的。但是,对于我的方法来说,有些事情是不正确的,我无法弄清楚是什么。

M <- data.frame(x=c("A", "A", "B", "B"), y=c(1,2,1,2))

使用此数据框,我想生成一个新列z,其中包含逻辑,如果 x == "A"y == 1都为TRUE。下面的代码是我在这里可以提出的最好的代码,但是似乎只能评估我的第一个条件。
M$z <- sapply(M$x, function(x,y) if((x == "A") && (y == 1)) T else F, M$y)
  • 可以针对我的目的修复此代码吗?
  • 在R中是否有更好的方法,也许可以使用其他循环函数?
  • 最佳答案

    这是transform函数的任务

    transform(M, z=ifelse((x == "A") & (y == 1), T, F))
    x y z
    1 A 1 TRUE
    2 A 2 FALSE
    3 B 1 FALSE
    4 B 2 FALSE

    我认为更简单的方法是
    M$z <- with(M, (x == "A") & (y == 1))
    M
    x y z
    1 A 1 TRUE
    2 A 2 FALSE
    3 B 1 FALSE
    4 B 2 FALSE

    关于r - 在R中使用带有多个参数的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13070128/

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