在R中,命令对变量起作用,而不是对变量所针对的对象起作用。我怎样才能解决这个问题?

时间:2019-07-19 11:19:47

标签: r variables command data-manipulation

我陷入一个相当愚蠢的问题。我运行一个循环,在循环中将数字附加到字符串以寻址数据帧的各个列。然后,将这些列名称存储在变量中。然后,我在此变量上运行命令。但是,该命令是在变量包含的名称上运行的,而不是名称所代表的对象。

我以前尝试过as.characterdeparseas.array等。

library(qdap)

for (q in 1:9)
{
  lolz <- freq_terms(paste("df$col_0", q , sep = ""))
  assign (paste("freq", q, sep = ""), lolz)

命令freq_terms应用于q的第df列并存储在freq'q'中,而不是应用于字符串{{1 }}

数据示例

df$col_01

我收到的错误是

  

名称错误(y)<-c(“ WORD”,“ FREQ”):       “名称”属性[2]的长度必须与矢量[1]的长度相同

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我添加此“答案”仅是为了证明我无法利用所提供的信息重现您的问题。当我跑步时

library(qdap)

df <- read.table(header = TRUE, text = "
col_01  col_02  col_03 col_04
 hey    no       yes   ok
  Yo    yes       ok   NA
  no    hey       NA   ok")

freq_terms(df[[paste0("col_0", 1)]])

我得到了输出

  WORD FREQ
1 hey     1
2 no      1
3 yo      1

这就是为什么我建议通过复制dput(head(df))的输出而不是您的操作来向问题中添加数据的子集,dput()将为我们提供有关对象{{1 }},这可能会引起您的问题。您可能还想添加df的输出-可能很有帮助。