繁体   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