我有一个函数,它将输入作为数据框的列名称columnname~1
。
数据框由大约50列组成,我想重复这个过程,我可以
使用for循环生成列名作为字符,遗憾的是函数
不承认。区别仅在于M1~1
(有效)与"M1"~1
欢迎任何建议
答案 0 :(得分:4)
使用“[[功能?
datafrm[[M1]] ~ 1
该函数将解释字符值并将其转换为语言值。或者您可以使用do.call
功能。如果我们有数据框和功能的详细信息,那么即将发布最佳答案。
答案 1 :(得分:4)
尝试:
as.formula(paste("M1","1",sep="~"))
答案 2 :(得分:3)
或者作为粘贴的替代方法,您可以使用sprintf:
variablename = "M1"
as.formula(sprintf("%s ~ 1", variablename))
答案 3 :(得分:1)
您也可以使用:
substitute(columnname~1,list(columnname=as.name("M1")))
修改
当您替换" M1"包含变量的字符串(M1< - " M1")。