Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 命名列并将列添加到数据帧_R_Dataframe - Fatal编程技术网

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)))