gpt4 book ai didi

r - 如何将函数应用于R数据框中的每一列

转载 作者:行者123 更新时间:2023-12-02 16:51:10 26 4
gpt4 key购买 nike

我想对 R 中的每一列应用一个函数。假设以下是带有 (3xn) 的数据框:

df <- data.frame(
h1 = c(1,2,3),
h2 = c(2,3,1),
h3 = c(3,2,1),
h4 = c(1,2,3),
h5 = c(1,2,3)
)
rownames(df) <- c("e1", "e2", "e3")
df
# h1 h2 h3 h4 h5
# e1 1 2 3 1 1
# e2 2 3 2 2 2
# e3 3 1 1 3 3

如果我们要检查前 2 个元素是否假设每列 (h1,h2...) (e1==1, e2==2)。我们如何将检查功能应用于数据框中的每一列?

最佳答案

根据 row.nameshead 对数据行进行子集化,将 == 与值向量进行比较,得到从它派生的逻辑矩阵colSums,并检查它是否等于2,即如果每列的两个元素都是TRUE

colSums(mat[c("e1", "e2"),] == c(1, 2))==2

或者使用 apply,遍历 (MARGIN = 2) 列,应用函数(匿名函数调用)并检查是否 all在比较中是 TRUE

apply(head(mat, 2), 2, function(x) all(x  == c(1, 2)))

关于r - 如何将函数应用于R数据框中的每一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58648152/

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