我试图在expss中绑定两个表,如果num == TRUE,那么返回(list(df1,df2))应该是一个接一个的表绑定,在它们之间有一个空白的行。
此外,格式也应该是与输出相同的EXPSS。
library(expss)
mtcars = apply_labels(mtcars,
mpg = "Miles/(US) gallon",
cyl = "Number of cylinders",
disp = "Displacement (cu.in.)",
hp = "Gross horsepower",
drat = "Rear axle ratio",
wt = "Weight (1000 lbs)",
qsec = "1/4 mile time",
vs = "Engine",
vs = c("V-engine" = 0,
"Straight engine" = 1),
am = "Transmission",
am = c("Automatic" = 0,
"Manual"=1),
gear = "Number of forward gears",
carb = "Number of carburetors"
)
banner <- with(mtcars,list(total(), am))
var <- "mpg"
data = mtcars
func1 <- function(data,var,banner,num){
if (num==TRUE) {
df1 <- expss::cro_cpct(data[[var]],banner)
df2 <- cross_fun(data,
data[[var]],
col_vars = banner,
row_vars = vs,
fun = combine_functions(Mean = mean,
'Std. dev.' = sd,
'Valid N' = valid_n))
return(list(df1, df2))
}else{
df1 <- expss::cro_cpct(data[[var]],banner)
df1
}
}
t1 <- func1(mtcars,"mpg",banner,num=FALSE)发布于 2022-04-11 20:28:26
add_rows应该能工作:
func1 <- function(data,var,banner,num){
if (num==TRUE) {
df1 <- expss::cro_cpct(data[[var]],banner)
df2 <- cross_fun(data,
data[[var]],
col_vars = banner,
row_vars = vs,
fun = combine_functions(Mean = mean,
'Std. dev.' = sd,
'Valid N' = valid_n))
res = add_rows(
df1,
data.frame(row_labels = ""),
df2
)
return(res)
}else{
df1 <- expss::cro_cpct(data[[var]],banner)
df1
}
}https://stackoverflow.com/questions/71818888
复制相似问题