【问题标题】:R concatenate a column of dataframe, make a vector, then use it in a for loopR连接一列数据框,制作一个向量,然后在for循环中使用它
【发布时间】:2018-06-24 06:18:04
【问题描述】:

我有一个如下所示的数据框:

Tote_Type Length Width Height
L1        36     24     24
L2        33     20     20
M1        30     18     18
M2        27     16     16
S1        24     14     14
S2        20     10     10

我想制作一个高度自动化的程序。该数据框是输入数据。我将从 excel 文件中读取此数据框。然后我会循环遍历tote 这样的类型

for (i in c("L1", "L2", "M1", "M2", "S1", "S2")){
    pass
}

问题是,tote 类型可能会改变。我想创建一个不需要编辑 R 代码的工具。所有更改都需要在 Excel 中完成。

所以我的目标是在 excel 文件中读取一个类似于上面的数据框,然后使用第一列数据或第一列数据的一部分来创建像 c("L1" , "L2" , "M1", "M2", "S1", "S2") 这样的向量,然后将此向量应用于 @987654326 @循环。

我真的不知道如何实现这一点。任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 只要for(i in DF$Tote_Type)

标签: r for-loop dataframe vector concatenation


【解决方案1】:

这就是你要找的吗?您可以使用unique() 创建矢量。让我们先创建数据框:

df <- read.table(
  text = "
  Tote_Type Length Width Height
  L1        36     24     24
  L2        33     20     20
  M1        30     18     18
  M2        27     16     16
  S1        24     14     14
  S2        20     10     10
  ",
  header = T,
  stringsAsFactors = F
)

Unique 给出你想要的向量:

> unique(df$Tote_Type)
[1] "L1" "L2" "M1" "M2" "S1" "S2"

循环:

for (i in unique(df$Tote_Type)){
  print(i)
}

输出:

[1] "L1"
[1] "L2"
[1] "M1"
[1] "M2"
[1] "S1"
[1] "S2"

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-09-07
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
相关资源
最近更新 更多