【问题标题】:How to use > for (variable in vector) { in R? [duplicate]如何在R中使用> for(向量中的变量){? [复制]
【发布时间】:2018-01-16 05:46:53
【问题描述】:
Site   Treatment    Month    repli
W2         0          0      2
W3         0          0      1 
W7         0          0      3
W12        0          0      4
W2         0          1      2
W3         0          1      1
W7         0          1      3 
W12        0          1      4
W2         0          3      2
W3         0          3      1
W7         0          3      3 
W12        0          3      4
W2         0          4      2
W3         0          4      1
W7         0          4      3 
W12        0          4      4

如果我使用

for(i in 1:max(data$Repli)){
s1=subset(data,data$Repli==i)

我得到最后一行(w12 一个)

Site      Treatment   Month    repli
W12           0         0       4
W12           0         1       4
W12           0         3       4
W12           0         5       4

我的问题是如何选择其他行? 当我想选择 W2、W3 或 W7 时,我的代码是什么?

谢谢!

我必须使用与以下脚本中的 i 在其他地方使用的脚本相同的脚本

for(i in 1:max(Cs$Repli)){
  s1=subset(Cs,Cs$Repli==i)  

【问题讨论】:

  • 我认为您当前的代码应该可以正常选择每个子集,但它们只会在当前循环迭代期间被选中。一旦您进入下一次迭代并且s1 被覆盖,您就不再拥有该子集。如果要保存所有子集,可以使用 subsets = split(data, data$repli)
  • @Marius 谢谢。但是,上述脚本中的 (i) for(i in 1:max(data$Repli)){ s1=subset(data,data$Repli==i) 也在其他地方使用。所以,我也必须对其他行使用相同的代码。改写就好了。

标签: r variables vector


【解决方案1】:

使用%in%:

data[data$Site %in% c("W2", "W3", "W7"), ]

【讨论】:

  • 贝格莱森 谢谢先生的快速回复。
  • 我标记了它。然而有一个问题。我使用的脚本 for(i in 1:max(Cs$Repli)){s1=subset(Cs,Cs$Repli==i)。上面脚本中的 i 也用于其他地方。所以我不能使用 %in%。由于您的脚本回答了我的具体问题,因此我已对其进行了标记。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 2019-08-31
  • 2013-03-05
相关资源
最近更新 更多