【问题标题】:R: Remove Rows From Data Frame [i] of List 1 based on Index values from Data Frame [j] of List 2R:根据列表 2 的数据框 [j] 的索引值从列表 1 的数据框 [i] 中删除行
【发布时间】:2021-08-19 20:21:05
【问题描述】:

我有以下问题:

我有一个数据帧列表,其中包含每个参与者的心率信号。此外,我有一个数据框列表,其中包含我想要删除的异常值的索引值。我想要做的是编写一个函数,该函数根据列表 2 中参与者 1 的异常值索引值的索引值从列表 1 中参与者 1 的 HR 信号中删除异常值,并得到一个没有索引异常值。换句话说,我想根据列表 2 中 Element[i] 的索引值删除列表 1 中 Element[i] 中的行。

示例代码和说明:

HR = list(df1, df2, df3, df4, df5) # list of data frames each containing one heart rate signal
outlier_list = list(df1, df2, df3, df4, df5) # list of data frames each cointaining the index values of the corresponding particiapant, which I want to remove --> e.g. HR$df1 & outlier_list$df1 contain values for participant 1

# I tried the following:
    HR_clean = lapply(HR, function(x){ lapply(outlier_list, function(i){
    x[-c(i)]})
})

很遗憾,HR_clean 输出没有产生任何有用的结果。

我希望很清楚我想要达到的目标。 我很感激任何提示!

【问题讨论】:

    标签: r list function iteration


    【解决方案1】:

    根据描述,它不应​​该是嵌套循环。相反,这应该在相应的元素上完成,使用Map 会更容易

    Map(function(dat, i) dat[-i], HR, outlier_list)
    

    【讨论】:

    • @johnson24 谢谢。您也可以查看here
    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多