[英]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))
。
我們可以使用map
和parse_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.