我使用assign()从一些其他数据帧中分配一些新的数据帧。然后,我想要命名新数据框中的一些列。当我使用assign()来创建新的数据帧时,它工作正常。但是当我在colnames()中使用assign()时会出现错误'错误"找不到函数"赋值< - "。'
这是我的代码片段(当然缩写):
for(i in 1:value) {
assign(Name[i], Old.Data.Frame[Old.Data.Frame$1 == Index[i]]) #I'm going to call this line of code 'New Data Frame' for brevity
for(j in 1:ncol(New Data Frame)) {
colnames(New Data Frame)[j] = as.character(Old.Data.Frame[3,j])
我做了所有这些assign()的东西,因为旧数据框的名称不断变化,我可以在我的代码中创建任何具体的变量,只有框架的尺寸保持不变。
此代码中唯一的错误是R不能"在colnames中找到函数assign< - ..."。我感到慌乱,因为assign()刚刚在行中工作,任何帮助表示赞赏,谢谢!
答案 0 :(得分:1)
您在Name
中有一个变量名列表,您可以为其分配一个值(您的代码块)。
for(i in 1:value) { assign(Name[i], Old.Data.Frame[Old.Data.Frame$1 == Index[i]]) }
然后你可以尝试(注意我将这个代码块分开以进行调试):
for(i in 1:value) { colnames(get(Names[i])) <- as.character(Old.Data.Frame[3,] }
get
将检索分配给变量名Names[i]
(字符)的数据(data.frame)