R:通过索引和列名称索引到draframe行会给出所有级别

时间:2019-04-23 00:48:48

标签: r dataframe

我正在使用foor循环来获取数据帧的像元值

  for(k in 1:nrow(myDF)){
    for(h in names(myDF[k,])){
           a<-myDF[k,][["colname"]]
           print(a)
    }   
  }

在所有级别上给出所需的值。您可以看到第一个值是所需单元格中的实际值,但低于该值将给出所有级别。这种行为的原因是什么,以及如何避免获得所有级别。

结果

[1] 1800-01-01
375 Levels: 1/10/2018 1/11/2018 1/12/2018 1/13/2018 1/15/2018 1/16/2018 1/16/2019 1/17/2018 1/17/2019 1/18/2018 1/19/2018 1/20/2018 1/21/2019 1/22/2018 1/22/2019 ... 9/9/2018
[1] 1800-01-01
375 Levels: 1/10/2018 1/11/2018 1/12/2018 1/13/2018 1/15/2018 1/16/2018 1/16/2019 1/17/2018 1/17/2019 1/18/2018 1/19/2018 1/20/2018 1/21/2019 1/22/2018 1/22/2019 ... 9/9/2018
[1] 1800-01-01
375 Levels: 1/10/2018 1/11/2018 1/12/2018 1/13/2018 1/15/2018 1/16/2018 1/16/2019 1/17/2018 1/17/2019 1/18/2018 1/19/2018 1/20/2018 1/21/2019 1/22/2018 1/22/2019 ... 9/9/2018
[1] 1800-01-01
375 Levels: 1/10/2018 1/11/2018 1/12/2018 1/13/2018 1/15/2018 1/16/2018 1/16/2019 1/17/2018 1/17/2019 1/18/2018 1/19/2018 1/20/2018 1/21/2019 1/22/2018 1/22/2019 ... 9/9/2018
[1] 1800-01-01
375 Levels: 1/10/2018 1/11/2018 1/12/2018 1/13/2018 1/15/2018 1/16/2018 1/16/2019 1/17/2018 1/17/2019 1/18/2018 1/19/2018 1/20/2018 1/21/2019 1/22/2018 1/22/2019 ... 9/9/2018

1 个答案:

答案 0 :(得分:2)

这是对因子使用print时的默认行为。使用max.level = 0将其从打印中删除。

z <- data.frame(a = as.factor(c(4,3,2,1)))

print(z[1,])

#output
[1] 4
Levels: 1 2 3 4

print(z[1,], max.levels = 0)

#output
[1] 4