[英]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]))
}
}
但是我會在count
和count2
的循環外創建一個初始表或變量。
如果您有大量的變量,則可以創建對的列表,表或其他向量對,以發送到嵌套循環中以迭代要比較的列對。
但是,如果您dplyr
具有多組列的列對中的d == d次總數以及每個列對中的可能因子,則可以考慮使用dplyr
程序包。
如果使用group_by
來收集兩列,然后使用帶有某些邏輯的summarize()
和filter
來提取每組值的等效對,則可以創建它們相同的計數表。
這是使用dplyr的良好鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.