簡體   English   中英

在R中的列中循環

[英]Cycling through columns in R

我有一項調查收集的數據。 csv文件看起來像這樣。

1c x x 1e x x 2c x x 2e x x 

D  x x D  x x R  x x R  x x 

R  x x R  x x D  x x D  x x 

D  x x D  x x R  x x R  x x 

R  x x R  x x R  x x R  x x 

等,等等。

x代表此分析中未使用的其他數據。

1c和1e(或任何成對的列)的響應應該相同。 進行操作檢查以測試參與者是否注意。 我想計算“ D”和“ R”的數量,但是如果成對的列不匹配,則不計算它們。

現在我正在做這樣的事情:

final <- read("data.csv")


   for(i in 1:length(rownames(final))){
      if(final$X1c[i] == final$X1e[i]){
        count <- append(count, as.character(final$X1c[i]))
      } 
    }
   for(i in 1:length(rownames(final))){
      if(final$X2c[i] == final$X2e[i]){
        count <- append(count, as.character(final$X2c[i]))
      } 
    }

並不斷。

我該怎么做,這樣我就不必為每個問題都單獨准備一個for循環?

您可以在循環中簡單地擁有兩個不同的計數器來捕獲這兩個計數(或者無論您有多少個):

final <- read("data.csv")


   for(i in 1:length(rownames(final))){
      if(final$X1c[i] == final$X1e[i]){
        count <- append(count, as.character(final$X1c[i]))
      if(final$X2c[i] == final$X2e[i]){
        count2 <- append(count2, as.character(final$X2c[i]))
      } 
      } 

但是我會在countcount2的循環外創建一個初始表或變量。

如果您有大量的變量,則可以創建對的列表,表或其他向量對,以發送到嵌套循環中以迭代要比較的列對。

但是,如果您dplyr具有多組列的列對中的d == d次總數以及每個列對中的可能因子,則可以考慮使用dplyr程序包。

如果使用group_by來收集兩列,然后使用帶有某些邏輯的summarize()filter來提取每組值的等效對,則可以創建它們相同的計數表。

這是使用dplyr的良好鏈接:

使用mtcars數據集的dplyr教程

暫無
暫無

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

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