簡體   English   中英

R:根據列表 2 的數據幀 [j] 的索引值從列表 1 的數據幀 [i] 中刪除行

[英]R: Remove Rows From Data Frame [i] of List 1 based on Index values from Data Frame [j] of List 2

我有以下問題:

我有一個數據幀列表,其中包含每個參與者的心率信號。 此外,我有一個數據框列表,其中包含我想要刪除的異常值的索引值。 我想要做的是編寫一個 function,它根據列表 2 中參與者 1 異常值索引值的索引值從列表 1 中參與者 1 的 HR 信號中刪除異常值,並得到一個 output 清潔 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 output 沒有產生任何有用的結果。

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

根據描述,它不應該是嵌套循環。 相反,這應該在相應的元素上完成,使用Map更容易

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM