簡體   English   中英

循環以重命名R數據框中的字段

[英]Loop to rename fields in an R dataframe

我有一個從csv文件讀取的R中的數據幀。 如何在所有列名的末尾附加字符串(“ EA”)? 我已經找到了適用於單個列的代碼,但是由於某種原因,我的循環未返回重命名的字段。

這是數據幀:

> str(mydataframe)
'data.frame':   8368 obs. of  4 variables:
 $ gene: Factor w/ 8368 levels "A1BG","A1CF",..: 6949 4379 7111 4691 2331 4914 506 4985 7109 2072 ...
 $ p   : num  1.23e-09 1.05e-07 1.20e-07 2.53e-07 6.67e-07 ...
 $ beta: num  2.86 2.52 2.51 1.72 2.34 ...
 $ se  : num  0.471 0.474 0.474 0.334 0.471 ...

這是代碼:

for(i in names(mydataframe)){ 
    i_renamed <- paste(i, "EA", sep=".")
    mydataframe$i_renamed <- mydataframe$i
    mydataframe$i <- NULL
}

...但是之后對象仍然相同

> str(mydataframe)
'data.frame':   8368 obs. of  4 variables:
 $ gene: Factor w/ 8368 levels "A1BG","A1CF",..: 6949 4379 7111 4691 2331 4914 506 4985 7109 2072 ...
 $ p   : num  1.23e-09 1.05e-07 1.20e-07 2.53e-07 6.67e-07 ...
 $ beta: num  2.86 2.52 2.51 1.72 2.34 ...
 $ se  : num  0.471 0.474 0.474 0.334 0.471 ...

對於所有列,所需的結果是與原始“ gene”字段相同的字段“ gene.EA”

謝謝

您可以避免嘗試使用循環來執行此操作。

names(mydataframe) <- paste0(names(mydataframe), '.EA')

或者明確地,您可以執行以下操作:

mydataframe <- setNames(mydataframe, paste0(names(mydataframe), '.EA'))

暫無
暫無

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

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