基于R中包含变量名的对象的子集数据帧
我有一个对象(基于R中包含变量名的对象的子集数据帧,r,dataframe,loops,for-loop,nested-loops,R,Dataframe,Loops,For Loop,Nested Loops,我有一个对象(var),它可能会更改,其中包含数据帧df的任何变量的名称。我正在尝试创建一个循环,它可以根据这个变量的值生成子集 df[df$var == "value", 3] for(l in levels(outcome){ for(i in names(df)){ list <- table(df[df$i == l, 3]) } } 但是,我想强调的是,变量名和值将在每个变量上循环,因此需要进行更改。编写函数可能会有所帮助: get
var
),它可能会更改,其中包含数据帧df
的任何变量的名称。我正在尝试创建一个循环,它可以根据这个变量的值生成子集
df[df$var == "value", 3]
for(l in levels(outcome){
for(i in names(df)){
list <- table(df[df$i == l, 3])
}
}
但是,我想强调的是,变量名和值将在每个变量上循环,因此需要进行更改。编写函数可能会有所帮助:
get_counts <- function(data, i, l) {
table(data[data[[i]] == l, 3])
}
您可以使用
df[[i]]
。你能分享一下你的预期产出吗?我刚刚做了@Ronaksah:)
>table(df[df$outcome == 'married', 3])
black blonde brown
2 1 0
get_counts <- function(data, i, l) {
table(data[data[[i]] == l, 3])
}
get_counts(df, 'outcome', 'married')
# black blonde brown
# 1 1 1