R 命名列并将列添加到数据帧
我正在将各种文本文件合并到一个数据框中 到目前为止我有R 命名列并将列添加到数据帧,r,dataframe,R,Dataframe,我正在将各种文本文件合并到一个数据框中 到目前为止我有 files = list.files() data = lapply(files,function(x) read.table(x)) data_rbind <- do.call("rbind", data) 但是,这会给出错误消息 colnames中的错误该错误表示名称向量的长度与数据帧中的列数不同。如果要设置特定列的名称,请执行以下操作 #assume car, colour, and price correspond to
files = list.files()
data = lapply(files,function(x) read.table(x))
data_rbind <- do.call("rbind", data)
但是,这会给出错误消息
colnames中的错误该错误表示名称向量的长度与数据帧中的列数不同。如果要设置特定列的名称,请执行以下操作
#assume car, colour, and price correspond to columns 1, 3, 4
colnames(dataframe)[c(1,3,4)]<-c("car", "colour", "price")
然后在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")
“名字向量”到底是什么意思?我刚刚检查了结构,它告诉我只有1个变量,而我应该有3个。有没有办法将上面的代码压缩成3个变量?我尝试了“data=lappy(files,header=FALSE,sep=“,”,function(x)read.table(x)),但在FUN(c(“abc.txt”、“def.txt”、“ghi.txt”、“jkl.txt”):未使用的参数(header=FALSE,sep=“,”)中得到了错误“error”我不确定您的数据到底是什么,您需要发布一个示例。名称向量,我的意思是。假设您有一个包含列a、B和C的数据框。您想将列B和C的名称分别更改为X和Y,那么名称向量将是C(“X”,“Y”)您可以通过colnames(dataframe)[c(2,3)]来更改列名,这也不是为read.table调用lappy的正确方法,传递给正在应用的函数的其他参数是在函数之后指定的Hi,我现在意识到为什么会出现错误-应该是3列数据包含在一列中。我对R还是很陌生,所以我不知道为什么会发生这种情况。如果我知道如何将数据分离到单独的c中,您的代码应该可以工作列…@perriebtee您的每个文件都有一列数据吗?
df$Year<-values
#[[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
# 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
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)))