我正在尝试迭代数据框的抛出并访问每行列中的值。也许,我需要一个范式转变。我尝试了一种矢量化方法。我的最终目标是在每一行中使用特定的列值来过滤另一个数据框。
任何帮助将不胜感激。
df <- data.frame(a = 1:3, b = letters[24:26], c = 7:9)
f <- function(row) {
var1 <- row$a
var2 <- row$b
var3 <- row$c
}
pmap(df, f)
有没有办法在 purrr
中做到这一点?
答案 0 :(得分:1)
library(tidyverse)
df <- data.frame(a = 1:3, b = letters[24:26], c = 7:9)
f <- function(row) {
var1 <- row$a
var2 <- row$b
var3 <- row$c
}
df %>%
split(rownames(.)) %>%
map(
~f(.x)
)
答案 1 :(得分:1)
使用pmap
,我们可以做到
library(purrr)
pmap(df, ~ f(list(...)))
#[[1]]
#[1] 7
#[[2]]
#[1] 8
#[[3]]
#[1] 9
或者将 rowwise
与 cur_data
一起使用
library(dplyr)
df %>%
rowwise %>%
transmute(new = f(cur_data()))
-输出
# A tibble: 3 x 1
# Rowwise:
# new
# <int>
#1 7
#2 8
#3 9