gpt4 book ai didi

r - 使用 lapply 将函数应用于 tibble 中的每一行

转载 作者:行者123 更新时间:2023-12-01 01:48:00 25 4
gpt4 key购买 nike

这是我的代码,它尝试将函数应用于 tibble 中的每一行, mytib :

> mytib
# A tibble: 3 x 1
value
<chr>
1 1
2 2
3 3

这是我尝试将函数应用于 tibble 中的每一行的代码:
mytib = as_tibble(c("1" , "2" ,"3"))

procLine <- function(f) {
print('here')
print(f)
}

lapply(mytib , procLine)

使用 lapply :
> lapply(mytib , procLine)
[1] "here"
[1] "1" "2" "3"
$value
[1] "1" "2" "3"

此输出表明该函数不会每行调用一次,因为我希望输出为:
here
1
here
2
here
3

如何将函数应用于 tibble 中的每一行?

更新:我很欣赏提供的答案,这些答案允许我得到预期的结果,但是我的实现有什么错误? lapply应该对每个元素应用一个函数?

最佳答案

invisible用于避免显示输出。此外,您必须遍历名为“value”的列的元素,而不是整个列。

invisible( lapply(mytib$value , procLine) )
# [1] "here"
# [1] "1"
# [1] "here"
# [1] "2"
# [1] "here"
# [1] "3"
lapply默认情况下循环遍历数据框的列。请参阅下面的示例。两列的值在每次迭代中作为一个整体打印。
mydf <- data.frame(a = letters[1:3], b = 1:3, stringsAsFactors = FALSE )
invisible(lapply( mydf, print))
# [1] "a" "b" "c"
# [1] 1 2 3

要遍历数据框中列的每个元素,您必须像下面这样循环两次。
invisible(lapply( mydf, function(x) lapply(x, print)))
# [1] "a"
# [1] "b"
# [1] "c"
# [1] 1
# [1] 2
# [1] 3

关于r - 使用 lapply 将函数应用于 tibble 中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47146935/

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