Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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/0/search/2.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_Names - Fatal编程技术网

在r中更改多个数据帧列标题

在r中更改多个数据帧列标题,r,dataframe,names,R,Dataframe,Names,我正在运行的程序使用以下代码创建三个数据帧: datuniqueNDC <- data.frame(lapply(datlist, function(x) length(unique(x$NDC)))) datuniquePID <- data.frame(lapply(datlist, function(x) length(unique(x$PAYERID))) datlengthNDC <- data.frame(lapply(datlist, function(x) le

我正在运行的程序使用以下代码创建三个数据帧:

datuniqueNDC <- data.frame(lapply(datlist, function(x) length(unique(x$NDC))))
datuniquePID <- data.frame(lapply(datlist, function(x) length(unique(x$PAYERID)))
datlengthNDC <- data.frame(lapply(datlist, function(x) length(x$NDC)))
我试图将这些行合并到一个数据框中,结果如下:

        X      Y    Z
1     182    178   76
2      34     31    7
3   10674  10021  653
但是rbind命令不起作用,因为所有列的名称都不同。在创建上面的每个变量之后,我可以通过使用colnames命令使其工作,但是似乎应该有一种更有效的方法通过使用apply命令或类似的命令来实现这一点。谢谢你的帮助。

一种方法是,因为每件事似乎都是一个数字,那就是:

mylist <- list(dat1,dat2,dat3) 
# assuming your three data.frames are dat1:dat3 respectively

 do.call("rbind",lapply(mylist, as.matrix))
#     X182L X178L X76L
#[1,]   182   178   76
#[2,]    34    31    7
#[3,] 10674 10021  653

mylist由于在
lapply
调用中使用的函数都是标量,因此如果使用
sapply
会更容易
sapply
返回向量,您可以
rbind

datuniqueNDC <- sapply(datlist, function(x) length(unique(x$NDC)))
datuniquePID <- sapply(datlist, function(x) length(unique(x$PAYERID))
datlengthNDC <- sapply(datlist, function(x) length(x$NDC))
dat <- as.data.frame(rbind(datuniqueNDC,datuniquePID,datlengthNDC))
names(dat) <- c("x", "y", "z")

datuniqueNDC也许您应该举例说明
datlist
的外观。
datlist
是一个包含三个不同数据帧的列表,数据帧的行数和列数各不相同。上面的代码用于从所有三个数据帧中提取相似的值。请尝试:
sappy(数据列表、函数(x)c(长度(唯一的(x$NDC))、长度(唯一的(x$PAYERID))、长度(x$NDC)))
谢谢,我认为这至少可以简化一些事情。这正是我想要的。谢谢。
datuniqueNDC <- sapply(datlist, function(x) length(unique(x$NDC)))
datuniquePID <- sapply(datlist, function(x) length(unique(x$PAYERID))
datlengthNDC <- sapply(datlist, function(x) length(x$NDC))
dat <- as.data.frame(rbind(datuniqueNDC,datuniquePID,datlengthNDC))
names(dat) <- c("x", "y", "z")
dat <- as.data.frame(sapply(datlist, function(x) {
    c(length(unique(x$NDC)), length(unique(x$PAYERID), length(x$NDC))
}))
names(dat) <- c("x", "y", "z")