【发布时间】:2020-03-05 17:23:33
【问题描述】:
我有一个损坏的文件路径列表,在某些情况下,最后一个目录与文件名融合在一起(例如,DIR/analysis/filename.csv 是 DIR/analysisfilename.csv)。我在/ 上创建了一个DF 拆分,需要从文件名中提取analysis 并将其放在具有NA 值的前一列中。
有没有办法在 R 中做到这一点?
这是我当前输入和所需输出的一个小例子
library(tidyverse)
dat <- structure(list(a = c("MOX", "MOX", "MOX", "MOX", "MOX",
"MOX", "MOX", "MOX", "MOX", "MOX"),
b = c("FFTF", "FFTF", "FFTF", "FFTF", "JOYO",
"JOYO", "JOYO", "JOYO", "JOYO", "JOYO"),
c = c("FO-2", "FO-2", "FO-2", "FO-2", "MK-I",
"MK-I", "MK-I", "B14", "B14", "B14"),
d = c("L09", "L09", "L09", "L09", NA, NA, NA,
"PTM001", "PTM001", "PTM001"),
e = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_,
NA_character_),
f = c("analysisL09_1D_sampleJ", "analysisL09_1D_sampleH",
"analysisL09_Multi-App_2DRZ", "analysisL09_2DRZ_new_bubble_gb_lim_DiffCoeff4_GrainGrowth",
"analysisMK-I_50MW_new_bubble_gb_lim", "analysisMK-I_75MW_new_bubble_gb_lim",
"analysisMK-I_50MW_old_bubble_gb_lim", "analysisB14_PTM001_1D_sample3_noAm",
"analysisB14_PTM001_1D_sample1", "analysisB14_PTM001_1D_sample2")),
row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"))
电流输出
dat
#> # A tibble: 10 x 6
#> a b c d e f
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 MOX FFTF FO-2 L09 <NA> analysisL09_1D_sampleJ
#> 2 MOX FFTF FO-2 L09 <NA> analysisL09_1D_sampleH
#> 3 MOX FFTF FO-2 L09 <NA> analysisL09_Multi-App_2DRZ
#> 4 MOX FFTF FO-2 L09 <NA> analysisL09_2DRZ_new_bubble_gb_lim_DiffCoeff4…
#> 5 MOX JOYO MK-I <NA> <NA> analysisMK-I_50MW_new_bubble_gb_lim
#> 6 MOX JOYO MK-I <NA> <NA> analysisMK-I_75MW_new_bubble_gb_lim
#> 7 MOX JOYO MK-I <NA> <NA> analysisMK-I_50MW_old_bubble_gb_lim
#> 8 MOX JOYO B14 PTM001 <NA> analysisB14_PTM001_1D_sample3_noAm
#> 9 MOX JOYO B14 PTM001 <NA> analysisB14_PTM001_1D_sample1
#> 10 MOX JOYO B14 PTM001 <NA> analysisB14_PTM001_1D_sample2
dat2 <- structure(list(a = c("MOX", "MOX", "MOX", "MOX", "MOX",
"MOX", "MOX", "MOX", "MOX", "MOX"),
b = c("FFTF", "FFTF", "FFTF", "FFTF", "JOYO",
"JOYO", "JOYO", "JOYO", "JOYO", "JOYO"),
c = c("FO-2", "FO-2", "FO-2", "FO-2", "MK-I",
"MK-I", "MK-I", "B14", "B14", "B14"),
d = c("L09", "L09", "L09", "L09", "analysis", "analysis", "analysis",
"PTM001", "PTM001", "PTM001"),
e = c("analysis", "analysis", "analysis",
"analysis", NA_character_, NA_character_,
NA_character_, "analysis", "analysis",
"analysis"),
f = c("L09_1D_sampleJ", "L09_1D_sampleH",
"L09_Multi-App_2DRZ", "L09_2DRZ_new_bubble_gb_lim_DiffCoeff4_GrainGrowth",
"MK-I_50MW_new_bubble_gb_lim", "MK-I_75MW_new_bubble_gb_lim",
"MK-I_50MW_old_bubble_gb_lim", "B14_PTM001_1D_sample3_noAm",
"B14_PTM001_1D_sample1", "B14_PTM001_1D_sample2")),
row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"))
期望的输出
dat2
#> # A tibble: 10 x 6
#> a b c d e f
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 MOX FFTF FO-2 L09 analysis L09_1D_sampleJ
#> 2 MOX FFTF FO-2 L09 analysis L09_1D_sampleH
#> 3 MOX FFTF FO-2 L09 analysis L09_Multi-App_2DRZ
#> 4 MOX FFTF FO-2 L09 analysis L09_2DRZ_new_bubble_gb_lim_DiffCoeff4_Gr…
#> 5 MOX JOYO MK-I analysis <NA> MK-I_50MW_new_bubble_gb_lim
#> 6 MOX JOYO MK-I analysis <NA> MK-I_75MW_new_bubble_gb_lim
#> 7 MOX JOYO MK-I analysis <NA> MK-I_50MW_old_bubble_gb_lim
#> 8 MOX JOYO B14 PTM001 analysis B14_PTM001_1D_sample3_noAm
#> 9 MOX JOYO B14 PTM001 analysis B14_PTM001_1D_sample1
#> 10 MOX JOYO B14 PTM001 analysis B14_PTM001_1D_sample2
由reprex package (v0.3.0) 于 2020-03-05 创建
【问题讨论】: