有没有一种方法可以在R函数中为数据帧中的每个子集指定一个不同的对象名?
我需要从一个data.frame生成不同的子集,然后将这些不同的子集用于后续操作。 因此,我需要给每个子集一个唯一的名称。我尝试编写不同的函数,但不知道如何编写。有没有一种方法可以在R函数中为数据帧中的每个子集指定一个不同的对象名?,r,function,replace,rename,R,Function,Replace,Rename,我需要从一个data.frame生成不同的子集,然后将这些不同的子集用于后续操作。 因此,我需要给每个子集一个唯一的名称。我尝试编写不同的函数,但不知道如何编写。 这里我展示了一个子集的函数,即datsub: run_subsets也许您最好动态创建子集。一种解决方案是,您可以创建一个带有“子集”列的数据框,如下所示: df <- data.frame( a = 1:10 , b = letters[1:10] ) subsets <- data.frame(
这里我展示了一个子集的函数,即datsub:
run_subsets也许您最好动态创建子集。一种解决方案是,您可以创建一个带有“子集”列的数据框,如下所示:
df <- data.frame(
a = 1:10
, b = letters[1:10]
)
subsets <- data.frame(
datsub1 = df$b == "d"
, datsub2 = df$a < 5
)
df[subsets$datsub1, ]
df[subsets$datsub2, ]
lapply(ldf, function(x){ someFunc(x) })
df试试这个:
ldf = split.data.frame(x = dat,f = dat$type)
然后,您可以将函数应用于每个单独的data.frame
,如下所示:
df <- data.frame(
a = 1:10
, b = letters[1:10]
)
subsets <- data.frame(
datsub1 = df$b == "d"
, datsub2 = df$a < 5
)
df[subsets$datsub1, ]
df[subsets$datsub2, ]
lapply(ldf, function(x){ someFunc(x) })
这有用吗
# create a dataframe
df <- data.frame(
a = 1:10
, b = letters[1:10]
)
# the function that subsets the dataframe and gives it a name
# and assigns it to the name you chose
run_subsets <- function(data, t, x) {
assign(
x
, data[eval(substitute(t),data), ]
, envir = .GlobalEnv
)
}
#创建数据帧
df通常将结果分配给一个变量,例如datsub1。您可以创建一个数据框列表
,并命名列表
中的每个元素,这基本上就是分别命名每个数据框
。为此,您还必须随身携带data.frame名称的向量。您正在使用哪些参数来子集data.frames?感谢您的快速响应。我需要的是函数中的一个参数,它在函数体中改变datsub本身。我的想法是,我有三个参数:一个用于data.frame(data),一个用于条件(t),一个用于在datsub1等(x)中更改datsub。这样我可以说,例如:我想选择一个具有这样一个条件的数据帧,并以这种方式命名它。那么,我如何才能为更改datasub本身创建一个参数呢?感谢您的快速响应。我需要的是函数中的一个参数,它在函数体中改变datsub本身。我的想法是,我有三个参数:一个用于data.frame(data),一个用于条件(t),一个用于在datsub1等(x)中更改datsub。这样我可以说,例如:我想选择一个具有这样一个条件的数据帧,并以这种方式命名它。那么,如何创建用于更改datasub本身的参数呢?
ldf = split.data.frame(x = dat,f = dat$type)
lapply(ldf, function(x){ someFunc(x) })
# create a dataframe
df <- data.frame(
a = 1:10
, b = letters[1:10]
)
# the function that subsets the dataframe and gives it a name
# and assigns it to the name you chose
run_subsets <- function(data, t, x) {
assign(
x
, data[eval(substitute(t),data), ]
, envir = .GlobalEnv
)
}