从函数返回两个对象
Returning two objects from a function
我有两个列表对象,它们是从两个数据集创建的。我创建了一个从每个列表中删除一些随机组件的函数。我希望函数以 return 这两个列表作为输出。
例如,当我 运行 example_func
时,我想获得新的 list1
和 list2
对象。我希望函数的输出替换我的旧列表对象并看起来像预期的输出。
这可以在 R 中完成吗?
value <- rep(c(1:5), 10)
id <- rep(c("A", "B"), 25)
df <- data.frame(ID = as.factor(id),
value = value)
list1 <- df %>%
group_by(ID) %>%
group_split()
value <- rep(c(8:12), 10)
id <- rep(c("A", "B"), 25)
df <- data.frame(ID = as.factor(id),
value = value)
list2 <- df %>%
group_by(ID) %>%
group_split()
example_func <- function(l1, l2){
l1 <- l1[-c(1)]
l2 <- l2[c(1)]
}
# Expected outcome
expected_list1 <- list1[-c(1)]
expected_list2 <- list2[-c(1)]
您可以像这样使用 zeallot
运算符:
library(zeallot)
example_func <- function(l1, l2){
l1 <- l1[-c(1)]
l2 <- l2[c(1)]
list(l1, l2)
}
c(expected_list1, expected_list2) %<-% example_func(list1, list2)
我有两个列表对象,它们是从两个数据集创建的。我创建了一个从每个列表中删除一些随机组件的函数。我希望函数以 return 这两个列表作为输出。
例如,当我 运行 example_func
时,我想获得新的 list1
和 list2
对象。我希望函数的输出替换我的旧列表对象并看起来像预期的输出。
这可以在 R 中完成吗?
value <- rep(c(1:5), 10)
id <- rep(c("A", "B"), 25)
df <- data.frame(ID = as.factor(id),
value = value)
list1 <- df %>%
group_by(ID) %>%
group_split()
value <- rep(c(8:12), 10)
id <- rep(c("A", "B"), 25)
df <- data.frame(ID = as.factor(id),
value = value)
list2 <- df %>%
group_by(ID) %>%
group_split()
example_func <- function(l1, l2){
l1 <- l1[-c(1)]
l2 <- l2[c(1)]
}
# Expected outcome
expected_list1 <- list1[-c(1)]
expected_list2 <- list2[-c(1)]
您可以像这样使用 zeallot
运算符:
library(zeallot)
example_func <- function(l1, l2){
l1 <- l1[-c(1)]
l2 <- l2[c(1)]
list(l1, l2)
}
c(expected_list1, expected_list2) %<-% example_func(list1, list2)