如何在R中使用变量标签?

发布于 2025-01-04 19:49:20 字数 205 浏览 1 评论 0原文

我有一个函数,它将输入作为数据帧的列名称columnname~1

数据帧由大约 50 列组成,我想在其中重复该过程,我可以

使用 for 循环将列名称生成为字符,不幸的是该函数无法

识别该字符。区别只是 M1~1 (有效)与 "M1"~1

欢迎任何建议

I have a function that takes input as the column name of dataframe as columnname~1.

The dataframe consists of about 50 columns in which I want to repeat the process, I can

use a for loop to generate column name as a character which unfortunately the function does

not recognize. The difference is just M1~1 (works) vs "M1"~1

Any suggestions are welcome

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

近箐 2025-01-11 19:49:20

尝试:

as.formula(paste("M1","1",sep="~"))

Try:

as.formula(paste("M1","1",sep="~"))
千年*琉璃梦 2025-01-11 19:49:20

使用 "[[ 函数?

datafrm[[M1]] ~ 1

该函数将解释字符值并将其转换为语言值。或者您可以使用 do.call 函数。如果我们有详细信息,我们将立即提供最佳答案数据框和函数。

Use the "[[ function?

datafrm[[M1]] ~ 1

That function will interpret the character value and convert it to a language value. Or you could use the do.call function. Best answers will be forthcoming if we have specifics of the dataframe and the function.

毁梦 2025-01-11 19:49:20

或者作为粘贴的替代方法,您可以使用 sprintf:

variablename = "M1"
as.formula(sprintf("%s ~ 1", variablename))

Or as an alternative to paste you can use sprintf:

variablename = "M1"
as.formula(sprintf("%s ~ 1", variablename))
千里故人稀 2025-01-11 19:49:20

您还可以使用以下命令:

substitute(columnname~1,list(columnname=as.name("M1")))

编辑

当您用包含字符串的变量替换“M1”时(M1 <-“M1”),它也将起作用。

You can also use this:

substitute(columnname~1,list(columnname=as.name("M1")))

EDIT

It will also work when you substitute "M1" with variable containing string (M1 <- "M1").

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文