簡體   English   中英

清除 R 中的列數據

[英]Clean column data in R

我在嘗試清理數據時遇到了一個小問題。 我有一個屬性數據集,其中列出了屬性大小作為字符。 大小列的大部分數據只是數字,但采用文本格式。 如果我將它們轉換為數字數據,我會因為強制而丟失許多數據。 有一些特定的數據就像(20 * 40)......我無法轉換。 由於此數據在轉換時被強制轉換為 NA。 有關如何處理此類問題的任何指導?

也許這個 function 可以提供幫助。

evalCell <- function(x){
  f <- function(x) eval(parse(text = x))
  sapply(x, f)
}

x <- c("(20*40)", 123, "1 + 2*3", "(1 + 2)*3")
evalCell(x)
#  (20*40)       123   1 + 2*3 (1 + 2)*3 
#      800       123         7         9 

如果不需要返回向量的名稱,請讓 function 返回unname(sapply(etc))

我們可以使用mapparse_expr

library(purrr)
map_dbl(x, ~ eval(rlang::parse_expr(.x)))
#[1] 800 123   7   9

數據

x <- c("(20*40)", 123, "1 + 2*3", "(1 + 2)*3")

你可以試試

sapply(yourColumn, function(X) eval(parse(text=X)))

例子:

> sapply(c("5+5", "22", "10*5"), function(X) eval(parse(text=X)) )
 5+5   22 10*5 
  10   22   50 

暫無
暫無

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

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