Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/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 - Fatal编程技术网

R 将具有缩放值的新列添加到列表中的所有数据帧

R 将具有缩放值的新列添加到列表中的所有数据帧,r,R,我有一个数据帧列表,所有数据帧都包含一个用户列和另一个名为“VD”的列。我想使用VD列的缩放值向列表中的所有数据帧“VD_z”添加一个新列 df1 <- data.frame(VD = 1:3, user=letters[1:3]) df2 <- data.frame(VD = 4:6, user=letters[4:6]) filelist <- list(df1,df2) df1我们可以使用mapfrompurr循环通过列表和mutate创建“VD_z” library(

我有一个数据帧列表,所有数据帧都包含一个用户列和另一个名为“VD”的列。我想使用VD列的缩放值向列表中的所有数据帧“VD_z”添加一个新列

df1 <- data.frame(VD = 1:3, user=letters[1:3])
df2 <- data.frame(VD = 4:6, user=letters[4:6])
filelist <- list(df1,df2)

df1我们可以使用
map
from
purr
循环通过
列表
mutate
创建“VD_z”

library(tidyverse)
filelist %>%
      map( ~ .x %>% 
                mutate(VD_z = scale(VD)))

或者使用
base R
lappy/transform

filelist1 <- lapply(filelist, transform, VD_z = scale(VD))
filelist1
#[[1]]
#  VD user VD_z
#1  1    a   -1
#2  2    b    0
#3  3    c    1

#[[2]]
#  VD user VD_z
#1  4    d   -1
#2  5    e    0
#3  6    f    1

A
数据。表
方法可以

library(data.table)

dd <- rbindlist(filelist, idcol = 'id')[, VD_z := scale(VD), by = id]
#   id VD user VD_z
#1:  1  1    a   -1
#2:  1  2    b    0
#3:  1  3    c    1
#4:  2  4    d   -1
#5:  2  5    e    0
#6:  2  6    f    1
这就给了,

filelist1 <- lapply(filelist, transform, VD_z = scale(VD))
filelist1
#[[1]]
#  VD user VD_z
#1  1    a   -1
#2  2    b    0
#3  3    c    1

#[[2]]
#  VD user VD_z
#1  4    d   -1
#2  5    e    0
#3  6    f    1
filelist1 <- lapply(filelist, function(df) {df$VD_z <- scale(df$VD); df})
library(data.table)

dd <- rbindlist(filelist, idcol = 'id')[, VD_z := scale(VD), by = id]
#   id VD user VD_z
#1:  1  1    a   -1
#2:  1  2    b    0
#3:  1  3    c    1
#4:  2  4    d   -1
#5:  2  5    e    0
#6:  2  6    f    1
split(dd, dd$id)
$`1`
   id VD user VD_z
1:  1  1    a   -1
2:  1  2    b    0
3:  1  3    c    1

$`2`
   id VD user VD_z
1:  2  4    d   -1
2:  2  5    e    0
3:  2  6    f    1