Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.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
lapply-将特定值指定给data.frames中同一行中的其他列_R_Dataframe_Lapply - Fatal编程技术网

lapply-将特定值指定给data.frames中同一行中的其他列

lapply-将特定值指定给data.frames中同一行中的其他列,r,dataframe,lapply,R,Dataframe,Lapply,我有一个包含100多个data.frames的列表,每个都有3列 下面是data.frames之一的示例: [[6]] V1 V2 V3 2 12002 9 05 Jan 1974 404.074 2.940 10 12 Jan 1974 477.433 3.235 11 18 Jan 1974 443.135 3.099 12 30 Jan

我有一个包含100多个data.frames的列表,每个都有3列

下面是data.frames之一的示例:

[[6]]
             V1        V2        V3
2         12002                    
9   05 Jan 1974   404.074     2.940
10  12 Jan 1974   477.433     3.235
11  18 Jan 1974   443.135     3.099
12  30 Jan 1974   556.402     3.537
13  22 Nov 1974   534.586     3.455
我想做的是将第一列的第一行值复制到其他两列的另外两个第一行值。

对于列表中包含的所有data.frames,我的结果应该是:

[[6]]
             V1        V2        V3
2         12002     12002     12002         
9   05 Jan 1974   404.074     2.940
10  12 Jan 1974   477.433     3.235
11  18 Jan 1974   443.135     3.099
12  30 Jan 1974   556.402     3.537
13  22 Nov 1974   534.586     3.455
n、 b.每个数据帧要复制的值不同

我尝试先对一个data.frame执行此操作(不使用
lappy
),但它确实有效:

list[[1]]$V2[1] = list[[1]]$V1[1]
但当我尝试使用
lappy
函数时,它不再起作用:

list = lapply(list, function(x) x$V2[1] = x$V1[1])

我的代码有什么问题?

您需要在分配任务后返回整个df

list <- lapply(list, function(x) {
    x[1,] <- x$V1[1]
    x
}

list您需要在赋值后返回整个df

list <- lapply(list, function(x) {
    x[1,] <- x$V1[1]
    x
}

list与Emiliman5相同,下面是一个示例

d <- data.frame(x = 1:3, y = 4:6)
l <- list(d, d)
do_this <- function(dat) {
  dat[1,2] <- dat[1,1]
  return(dat)
}
lapply(l, do_this)

d与Emiliman 5相同,这里是一个示例

d <- data.frame(x = 1:3, y = 4:6)
l <- list(d, d)
do_this <- function(dat) {
  dat[1,2] <- dat[1,1]
  return(dat)
}
lapply(l, do_this)

d要注意的一件事是不要将您的列表称为“列表”。谢谢,我会记住这一点。要注意的一件事是不要将您的列表称为“列表”。谢谢,我会记住这一点。太好了!我总是忘记归还df!太好了!我总是忘记归还df!