簡體   English   中英

從 csv 文件中讀取列名並子集 dataframe

[英]Read column names from a csv file and subset a dataframe

我想根據所需的列名保留 dataframe 的特定列。 為此,我創建了一個名為NameList的 Z6A8064B5DF4794555500553C47C55057DZ ,其中包含所需的列名,並使用match命令從名為df的引用 dataframe 中提取所需的列。 生成的 dataframe 是參考 dataframe 的子集,名為NewDF

Fire <- c(42,46,29);
height <- c(21,25,28);
age <- c(23, 41, 32)
df <- data.frame(Fire,height,age);
NameList <- c("age","Fire")

idx <- match(NameList, names(df));
idx <- sort(idx)
NewDF <- df[,idx]

我的問題是,當我從 csv 文件加載這些名稱時,我無法重復此過程。 我無法將輸入數據轉換為與NameList相同的格式。 因此,我想就如何創建合適的 csv 文件尋求您的幫助,R 將讀取並轉換輸入數據,以便它們可用於提取所需的列

ķ

我已設法解決以下問題:

  1. 創建一個名為 columns_names.csv 的 csv 文件,其中包含所需的列名(請參閱下面的 csv 文件的內容)RHO_1 RHO_2 RHO_3
  2. 使用以下代碼:
df1 <-  read.table(file = "/Users/kotsios/Desktop/RCODE_CLUSTERING/auxilliary_codes/column_names.csv")
names(df1) <- as.matrix(df1[1, ])
df1 <- df1[-1, ]

#create a dataframe:
RHO_1 <- c("Tom",    "Dick",   "Harry",  "RHO_1" ,"John","RHO_2",   "Paul",   "George","RHO_3",  "Ringo")
RHO_2 <- c(1, 2, 3,4,5,6,7,8,9,10);RHO_3 <- c(1, 2, 3,4,5,6,7,8,9,10);RHO_4 <- c(11, 21, 31,41,51,61,71,81,91,101)
df2 <- data.frame(RHO_1, RHO_2,RHO_3,RHO_4)

#keep the desired column names
df5 <- df2[, (colnames(df2) %in% colnames(df1)) ]


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM