gpt4 book ai didi

r - 有条件地删除每列的值,但使用循环将每列保留为新数据框

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

我有以下简化的数据框。

test <- data.frame(
ice = c(1, 0.8, 0.5, 0.4),
eonia = c(0.5, 0, 0, -0.4),
euribor = c(1, -0.8, 1, -0.2),
cp = c(-0.7, -0.6, -0.4, -0.5)
)

row.names(test) <- colnames(test)

我想为每一列应用一个条件,它只保留满足条件的那些值:

test[(test$ice>= 0.8 & test$ice< 1) | (test$ice<= -0.8 & test$ice> -1), , drop=FALSE]

但是,我的真实数据框包含许多变量,我不想将此代码“手动”应用到每一列。请注意,在针对此条件进行过滤后,我可能需要将每一列添加到列表或新数据框中。

是否有一种有效的方法来遍历每一列,并可能将每一列作为一个新的数据框来保护或将其添加到列表中。

第一个数据框(或列表的一部分)应如下所示:

      ice
ice 1
eonia 0.8

提前致谢

最佳答案

[] 中的条件已应用于每一列。为了在丢失值的情况下保持矩阵布局,您可以显式添加例如不适用

这是一个例子(在@thelatemail 的帮助下编辑):

test[ !(( test >= 0.8 & test < 1 )|( test <= -0.8 & test > -1)) ] <- NA

ice eonia euribor cp
ice NA NA NA NA
eonia 0.8 NA -0.8 NA
euribor NA NA NA NA
cp NA NA NA NA

请记住,这是所谓的就地修改,直接更改您的数据集(此处为数据框 test)。

关于r - 有条件地删除每列的值,但使用循环将每列保留为新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69920662/

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