我陷入一个相当愚蠢的问题。我运行一个循环,在循环中将数字附加到字符串以寻址数据帧的各个列。然后,将这些列名称存储在变量中。然后,我在此变量上运行命令。但是,该命令是在变量包含的名称上运行的,而不是名称所代表的对象。
我以前尝试过as.character
,deparse
,as.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]的长度相同
任何帮助将不胜感激!
答案 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
的输出-可能很有帮助。