【问题标题】:Using for loop to subset data and create variables使用 for 循环对数据进行子集化并创建变量
【发布时间】:2016-08-11 00:02:27
【问题描述】:

目标

我正在尝试使用 for 循环来做两件事:

  1. 在少数数据框中创建变量
  2. 从其他数据帧的子集创建新数据帧

说明

我在美国每个州都有单独的调查数据集。我想将它们全部合并到美国的单个数据集中,但每个数据集的变量数量不相等。因此,我计划为每个状态创建子集数据框,然后将它们绑定在一起。

问题一:

首先,我想在每个状态中创建一个变量,该变量将简单地将状态名称作为字符串。一旦我将它绑定到合并的数据框中,这将有助于识别状态。这是我想要自动化的示例:

vermont$state <- "vermont"
alabama$state <- "alabama"
...
texas$state <- "texas"

我已经创建了一个可以迭代的每个状态的列表:

statenames <- c("alaska", "california", "vermont", ..., "new jersey", "texas")

我正在尝试使用 for 循环

for (i in statenames){
    i$state <- "i"
}

问题 2

第二,我想从每个数据集中提取一组特定的变量到新的数据帧中,然后我可以将它们绑定在一起形成一个数据帧。

我已经从每个数据集中创建了一个我想要的变量列表:

variables <- c("population", "size", "income", ..., "education")

我是编程新手,并尽力使用 for 循环来完成此操作:

for (i in statenames){
    i.sub <- i[variables]
}

当我执行两个 for 循环中的每一个 时,似乎什么都没有发生。没有错误信息。没有变量创建。没有新的数据框创建。

任何帮助将不胜感激~

【问题讨论】:

  • 你的预期输出是什么

标签: r loops


【解决方案1】:

第一季度

    for(i in state.name){
    df = data.frame(state = assign(paste(i),i))
    assign(paste(i),df)  
    }

第二季度

    variables <- c("population", "size", "income")


    for(i in state.name){
     df = data.frame(state = assign(paste(i),i))
     df[variables] = NA
     assign(paste(i),df)

    }

【讨论】:

  • 谢谢!抱歉回复晚了 - 我真的很感激 :)
猜你喜欢
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
  • 2015-06-20
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多