簡體   English   中英

在R中的數據框中循環遍歷列的功能

[英]Function to loop through a list of columns in a dataframe in R

我正在嘗試創建一個函數或r中的一個循環,該循環可以遍歷特定字符串(例如'123')的列列表,並創建一個帶有指示符變量(例如0或1)的新列(如果字符串存在於列表中)。定義的列。

請參見下面的示例-我想創建一個函數/循環,該函數/循環將檢測從df1到df5的任何列中是否都找到了字符串'123',如果找到了該字符串,則new_column將為1,如果沒有,則為將為0

  index df1 df2 df3 df4 df5 new_column
1     1 123 999 999 999 999          1
2     2 999 123 999 999 999          1
3     3 123 999 999 999 999          1
4     4 999 999 999 999 999          0
5     5 999 999 123 999 999          1
6     6 999 999 999 999 999          0

一種可能的解決方案(確保123是numeric ):

df <- cbind(df,new_c = sapply(1:length(df),function(x) ifelse(123 %in% df[x,],1,0)))

> df
  index df1 df2 df3 df4 df5 new_c
1     1 123 999 999 999 999     1
2     2 999 123 999 999 999     1
3     3 123 999 999 999 999     1
4     4 999 999 999 999 999     0
5     5 999 999 123 999 999     1
6     6 999 999 999 999 999     0

數據:

> df
  index df1 df2 df3 df4 df5
1     1 123 999 999 999 999
2     2 999 123 999 999 999
3     3 123 999 999 999 999
4     4 999 999 999 999 999
5     5 999 999 123 999 999
6     6 999 999 999 999 999

我們可以將Reduce|

df$new_column <- +(Reduce(`|`, lapply(df[2:6], `==`, 123)))

暫無
暫無

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

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