Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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_Tidyverse - Fatal编程技术网

R 通过另一个数据帧展开数据帧的行

R 通过另一个数据帧展开数据帧的行,r,tidyverse,R,Tidyverse,我有一个包含许多行和列的数据框架。一列指定包含更多数据的文件的路径: name path 1 a /path/a.csv 2 b /path/b.csv 我想读取该文件,然后使用从该文件创建的数据框展开我的行(即readr::read_csv: t x 1 1 4 2 2 3 3 3 5 4 4 1 示例文件a.c

我有一个包含许多行和列的数据框架。一列指定包含更多数据的文件的路径:

        name             path
1          a      /path/a.csv
2          b      /path/b.csv
我想读取该文件,然后使用从该文件创建的数据框展开我的行(即
readr::read_csv

      t     x
1     1     4
2     2     3
3     3     5
4     4     1
示例文件
a.csv

      t     x
1     1     3
2     2     1
3     3     6
b.csv

      t     x
1     1     4
2     2     3
3     3     5
4     4     1
期望输出

试试这个:

your_data$df = lapply(your_data$path, read_csv)
tidyr::unnest(your_data)
试试这个:

your_data$df = lapply(your_data$path, read_csv)
tidyr::unnest(your_data)

假设您的第一个数据文件名为
索引

do.call(rbind,apply(index, 1, function(X){temp = read.csv(X[2]);cbind(name=X[1], temp)}))
或者,for循环的
应该使代码更干净:

combined = NULL

for (i in 1:nrow(index)){
  temp = read.csv(index$path[i])
  combined = rbind(combined, cbind(name = index$name[i], temp))
}

假设您的第一个数据文件名为
索引

do.call(rbind,apply(index, 1, function(X){temp = read.csv(X[2]);cbind(name=X[1], temp)}))
或者,for
循环的
应该使代码更干净:

combined = NULL

for (i in 1:nrow(index)){
  temp = read.csv(index$path[i])
  combined = rbind(combined, cbind(name = index$name[i], temp))
}
使用purrr::map_df

library(tidyverse)

df %>%
  deframe %>%
  map_df(read_csv, .id = "name")
输出:

# A tibble: 7 x 3
   name     t     x
  <chr> <int> <int>
1     a     1     3
2     a     2     1
3     a     3     6
4     b     1     4
5     b     2     3
6     b     3     5
7     b     4     1
#一个tible:7 x 3
名称t x
1A13
2 a 2 1
3 a 3 6
4b14
5 b 2 3
6 b 3 5
7 b 4 1
使用purrr::map\u df

library(tidyverse)

df %>%
  deframe %>%
  map_df(read_csv, .id = "name")
输出:

# A tibble: 7 x 3
   name     t     x
  <chr> <int> <int>
1     a     1     3
2     a     2     1
3     a     3     6
4     b     1     4
5     b     2     3
6     b     3     5
7     b     4     1
#一个tible:7 x 3
名称t x
1A13
2 a 2 1
3 a 3 6
4b14
5 b 2 3
6 b 3 5
7 b 4 1

请为特定于代码编辑器RStudio的问题保存RStudio标记(例如,您的代码在RGui或命令行中工作,但在RStudio中不工作)。请为特定于代码编辑器RStudio的问题保存RStudio标记(例如,您的代码在RGui或命令行中工作,但在RStudio中不工作)。