lapply-将特定值指定给data.frames中同一行中的其他列
我有一个包含100多个data.frames的列表,每个都有3列 下面是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
[[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!