【问题标题】:R repeat automatically: create new df if change in variableR自动重复:如果变量发生变化,则创建新的df
【发布时间】:2023-03-15 10:43:02
【问题描述】:

我有一个简单的分组功能,我需要将其应用于一个数据框中的许多不同情况。对于“场景”中的每个字符更改,我想创建一个新的数据框。感谢您的帮助

    scenario_1 <- subset(data_ag, scenario == "0.1-0.3-0.01-1-0.3-0.35") 
    scenario_1 <- arrange(scenario_1, desc(X.step.))

我想要类似的东西:

    scenario_n+1 <- subset(data_ag, when scenario changes) 
    scenario_n+1 <- arrange(scenario_n+1, desc(X.step.))

【问题讨论】:

标签: r loops


【解决方案1】:

可以使用split() 函数根据因子变量的值将单个数据框分解为数据框列表。在这里,我们将创建一些示例数据并说明split() 的使用。

rawData<- "scenario,x,y,z
scenario-1,1,2,3
scenario-1,3,5,7
scenario-2,10,20,30
scenario-2,30,40,50
scenario-3,50,60,70"

data <- read.csv(textConnection(rawData),stringsAsFactors=TRUE)

# since scenario is a factor variable, we can now use it
# with split() to create one data frame per value of scenario

scenarioList <- split(data,data$scenario)

我们将使用 RStudio 中的对象查看器来说明生成的数据帧列表。

要访问列表中的任何数据框,请使用带有场景名称的提取运算符:

# print the first data frame in the list
scenarioList[["scenario-1"]]

...和输出:

> scenarioList[["scenario-1"]]
    scenario x y z
1 scenario-1 1 2 3
2 scenario-1 3 5 7
>

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 2021-07-30
    • 2016-07-21
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2021-12-03
    • 2016-11-03
    相关资源
    最近更新 更多