如何为 运行 一个观察函数获得多个结果?
how to get multiple outcomes for running a function on observations?
我怎么会 运行 多次呢?
我有一个名为 percent_people 的变量,它查看变量国家/地区是否有 5000000 人,还有一个名为 city_share 的变量,用于查看每个城市的百分比份额,例如 London = 40%,百分比变量有不同水平的人可能会失业(即从 100% 到 75% 或 50% 或 25%),以及这些不同的百分比如何影响失业率将如何变化?
但是,目前我只能引入一个city_share和一个percent_people变量。我如何编写代码才能循环遍历每个变量的多个输入?
现在我有以下内容:
library(dplyr)
Prediction <- function(city_share,
percent_people) {
unemployed_lon <-5000000 %>%
multiply_by(city_share) %>%
multiply_by(percent_people)
unemp <- 100000 +unemployed_lon
unemprate <- unemp %>% divide_by(5000000)
return(unemprate)
}
# Check -0.4 share + 100% percent_people
Prediction(0.4,1)
我不确定这是否是你想要的,但如果你想让函数一次接受多个 percent_people
变量,你可以在函数内部循环它,这样它可以接受百分比向量:
library(dplyr)
library(magrittr)
Prediction <- function(city_share,
percent_people) {
unemprates <- c()
for (i in percent_people){
unemployed_lon <-5000000 %>%
multiply_by(city_share) %>%
multiply_by(percent_people)
unemp <- 100000 +unemployed_lon
unemprate <- unemp %>% divide_by(5000000)
}
return(unemprate)
}
# Check -0.4 share + 100% percent_people
Prediction(0.4,c(1,0.5,0.25))
Prediction(0.4,1)
如果您还希望它 return 几个 city_share
输入的结果,我认为您可能需要切换到列表。下面的代码可能并不完美,但它完成了 return 为每个 city_share 引入一个值列表的工作。
library(dplyr)
library(magrittr)
Prediction <- function(city_share,
percent_people) {
unemprates_all<-list()
for (i in city_share){
unemp_share <- c()
for (j in percent_people){
unemployed_lon <-5000000 %>%
multiply_by(i) %>%
multiply_by(j)
unemp <- 100000 + unemployed_lon
unemp <- unemp %>% divide_by(5000000)
unemp_share <- append(unemp_share,unemp)
}
unemprate <- list(unemp_share)
unemprates_all[[length(unemprates_all)+1]] <- unemprate
}
return(unemprates_all)
}
# Check -0.4 share + 100% percent_people
Prediction(c(0.4,0.2),c(1,0.5))
Prediction(0.4,1)
我怎么会 运行 多次呢?
我有一个名为 percent_people 的变量,它查看变量国家/地区是否有 5000000 人,还有一个名为 city_share 的变量,用于查看每个城市的百分比份额,例如 London = 40%,百分比变量有不同水平的人可能会失业(即从 100% 到 75% 或 50% 或 25%),以及这些不同的百分比如何影响失业率将如何变化?
但是,目前我只能引入一个city_share和一个percent_people变量。我如何编写代码才能循环遍历每个变量的多个输入?
现在我有以下内容:
library(dplyr)
Prediction <- function(city_share,
percent_people) {
unemployed_lon <-5000000 %>%
multiply_by(city_share) %>%
multiply_by(percent_people)
unemp <- 100000 +unemployed_lon
unemprate <- unemp %>% divide_by(5000000)
return(unemprate)
}
# Check -0.4 share + 100% percent_people
Prediction(0.4,1)
我不确定这是否是你想要的,但如果你想让函数一次接受多个 percent_people
变量,你可以在函数内部循环它,这样它可以接受百分比向量:
library(dplyr)
library(magrittr)
Prediction <- function(city_share,
percent_people) {
unemprates <- c()
for (i in percent_people){
unemployed_lon <-5000000 %>%
multiply_by(city_share) %>%
multiply_by(percent_people)
unemp <- 100000 +unemployed_lon
unemprate <- unemp %>% divide_by(5000000)
}
return(unemprate)
}
# Check -0.4 share + 100% percent_people
Prediction(0.4,c(1,0.5,0.25))
Prediction(0.4,1)
如果您还希望它 return 几个 city_share
输入的结果,我认为您可能需要切换到列表。下面的代码可能并不完美,但它完成了 return 为每个 city_share 引入一个值列表的工作。
library(dplyr)
library(magrittr)
Prediction <- function(city_share,
percent_people) {
unemprates_all<-list()
for (i in city_share){
unemp_share <- c()
for (j in percent_people){
unemployed_lon <-5000000 %>%
multiply_by(i) %>%
multiply_by(j)
unemp <- 100000 + unemployed_lon
unemp <- unemp %>% divide_by(5000000)
unemp_share <- append(unemp_share,unemp)
}
unemprate <- list(unemp_share)
unemprates_all[[length(unemprates_all)+1]] <- unemprate
}
return(unemprates_all)
}
# Check -0.4 share + 100% percent_people
Prediction(c(0.4,0.2),c(1,0.5))
Prediction(0.4,1)