2017-02-19 52 views
0

我有從調查收集的數據。 csv文件看起來像這樣。騎自行車穿過列R

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循環?

回答

0

你可以簡單地在環路的兩個不同計數器來捕捉這兩個方面(或然而,許多OU有):

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])) 
     } 
     } 

不過,我想創建循環之外的初始表或變量count & count2

如果你有一個兆噸的變量,你可以創建一個列表,表或其他一些向量對,發送到一個嵌套循環中迭代要進行比較的列對。但是,如果您有興趣獲得的是每列列中具有多個列列和可能因子的列對中的總次數d == d,則可以考慮使用dplyr包。

如果使用group_by收集了兩列,然後使用summarize()一些邏輯和filter拔出每個組值相當於對,你可以創建他們是相同的計數表。

這裏是一個很好的鏈接,以這種方式使用dplyr:

dplyr tutorial using mtcars dataset

相關問題