簡體   English   中英

從數據框中的元素中刪除字符

[英]Remove a character from elements in a dataframe

我有一組數據,其中某些元素以“ <”開頭,並且需要刪除“ <”,以便可以執行一些數據分析。 數據保存在.txt文件中,我使用read.table將其帶入R。 以下是文本文件外觀的示例。

Background: 18 <10 27 22 <3

Site: 30 44 23 <16 13

我使用x=read.file制作了一個數據x=read.file ,然后嘗試gsub("<","",x)刪除"<" ,結果至少在我看來是完全出乎意料的。 結果就是我得到的。

[1] "1:2"       "c(18, 30)" "1:2"       "c(27, 23)" "c(2, 1)"   "1:2"   

我不知道那是什么意思,為什么會這樣。 我將非常感謝您對這里發生的事情以及應該如何實現自己的目標進行解釋。

df <- read.table(header = TRUE, text = "Background   Site
                 18   30
                 <10  44
                 27   23
                 22  <16
                 <3   13", stringsAsFactors = FALSE)

您可以使用mutate_at並將gsub函數應用於要刪除前面的<符號的變量(即BackgroundSite )。

library(dplyr)
df %>% mutate_at(vars(Background, Site), 
                 funs(as.numeric(gsub("^<", "", .))))

輸出為:

  Background Site
1         18   30
2         10   44
3         27   23
4         22   16
5          3   13

使用readLines讀取文件,執行gsub ,然后使用read.table重新讀取。 不使用任何軟件包:

read.table(text = gsub("<", "", readLines("myfile")), as.is = TRUE)

如果數據不是來自文件,而是已經在數據幀DF則定義clean函數,該函數清除DF的列並將其應用於每個數字列:

clean <- function(x) as.numeric(gsub(">", "", x))
DF[-1] <- lapply(DF[-1], clean)

暫無
暫無

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

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