私はまだRの初心者です。24個のcsvファイルがあります。それらを(1つずつ呼び出すことなく一度に)短いデータフレーム名のデータフレームとしてインポートし、データフレームごとに、データフレームの名前(または.csvファイル名)に基づいていくつかの列名を置き換えたいと思います。次に、3つのデータフレームを使用した例を示します。
df_ABX <- read.table(text = 'Name col1 col2 col3 col4
name1 10 20 30 40
name2 5 10 15 20
name13 17 16 15 14',
header = TRUE)
df_BAX <- read.table(text = 'Name col1 col2 col3 col4
name1 11 21 31 41
name2 4 9 8 19
name13 10 10 15 15',
header = TRUE)
df_XAB <- read.table(text = 'Name col1 col2 col3 col4
name1 9 19 29 28
name2 15 15 55 25
name13 18 10 11 12',
header = TRUE)
前の例では、私は名前のcsvファイルを希望myverylongtitle_df_ABX.csv
、myverylongtitle_df_ABX.csv
そしてmyverylongtitle_df_ABX.csv
次の名前のデータフレームとしてインポートします:df_ABX
、df_ABX
、df_ABX
。その後、私は希望col1
、col2
、col3
名前を変更するA
、B
またはX
データフレーム名にこれらの文字の位置に応じました。例えば:col2
:あるデータフレーム名にポジション2の文字、後に名前を変更しなければならないB
データフレームである場合はdf_ABX
、A
データフレームがある場合df_BAX
、およびZ
データフレームがある場合df_XAB
。col1
(位置1)とcol3
(位置3)にも同じことが当てはまります。
rename_at
入れてから使用できますlist
library(tidyverse)
lst(df_ABX, df_BAX, df_XAB) %>%
imap(~ {
nm1 <- str_remove(.y, 'df_') %>%
strsplit("") %>%
unlist
.x %>%
rename_at(2:4, ~ nm1)})
#$df_ABX
# Name A B X col4
#1 name1 10 20 30 40
#2 name2 5 10 15 20
#3 name13 17 16 15 14
#$df_BAX
# Name B A X col4
#1 name1 11 21 31 41
#2 name2 4 9 8 19
#3 name13 10 10 15 15
#$df_XAB
# Name X A B col4
#1 name1 9 19 29 28
#2 name2 15 15 55 25
#3 name13 18 10 11 12
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加