该错误表明您的名称向量与数据框中的列数长度不同。如果要设置特定列的名称,请执行以下操作
#assume car, colour, and price correspond to columns 1, 3, 4
colnames(dataframe)[c(1,3,4)]<-c("car", "colour", "price")
如果你想添加一个标题为Year的列,你可以添加它
df$Year<-values
尽管您需要确保 values 中的条目数等于 df 中的行数以获得所需的结果。该列的名称将是“年份”
只是为了证明它有效,我根据问题提供的示例制作了一个简单的 txt 文件。在 lapply 之后我得到了
#[[1]]
# V1 V2 V3
#1 Ford Red 8041
#2 Toyota Silver 6544
#3 BMW Red 4792
#
#[[2]]
# V1 V2 V3
#1 Ford Red 8041
#2 Toyota Silver 6544
#3 BMW Red 4792
#
#[[3]]
# V1 V2 V3
#1 Ford Red 8041
#2 Toyota Silver 6544
#3 BMW Red 4792
然后在 do.call 之后
# V1 V2 V3
#1 Ford Red 8041
#2 Toyota Silver 6544
#3 BMW Red 4792
#4 Ford Red 8041
#5 Toyota Silver 6544
#6 BMW Red 4792
#7 Ford Red 8041
#8 Toyota Silver 6544
#9 BMW Red 4792
然后我们可以更改列名,不必要地明确索引
colnames(dataframe)[c(1,2,3)]<-c("car", "color", "price")
我们也可以添加年份
dataframe$Year<-1 #all years are 1
# car color price Year
#1 Ford Red 8041 1
#2 Toyota Silver 6544 1
#3 BMW Red 4792 1
#4 Ford Red 8041 1
#5 Toyota Silver 6544 1
#6 BMW Red 4792 1
#7 Ford Red 8041 1
#8 Toyota Silver 6544 1
#9 BMW Red 4792 1
这是 lapply 调用后的数据输入
list(structure(list(V1 = c("Ford", "Toyota", "BMW"), V2 = c("Red",
"Silver", "Red"), V3 = c(8041L, 6544L, 4792L)), .Names = c("V1",
"V2", "V3"), class = "data.frame", row.names = c(NA, -3L)), structure(list(
V1 = c("Ford", "Toyota", "BMW"), V2 = c("Red", "Silver",
"Red"), V3 = c(8041L, 6544L, 4792L)), .Names = c("V1", "V2",
"V3"), class = "data.frame", row.names = c(NA, -3L)), structure(list(
V1 = c("Ford", "Toyota", "BMW"), V2 = c("Red", "Silver",
"Red"), V3 = c(8041L, 6544L, 4792L)), .Names = c("V1", "V2",
"V3"), class = "data.frame", row.names = c(NA, -3L)))