这是我的第一个堆栈溢出帖子,所以请多多包涵...
我希望在R中对数据表进行子集化,以便仅包含数字的行-排除包含字符的行。例如表
Date Temperature
41941.6656 1921
41941.6656 1921
41941.66561 1921
41941.66563 1921
41941.66564 1921
41941.pypito 1921
41941.66566 xWRET
41941.66567 1921
应该成为
Date Temperature
41941.6656 1921
41941.6656 1921
41941.66561 1921
41941.66563 1921
41941.66564 1921
41941.66567 1921
其中xWRET代表我的愚蠢仪器经常出现的一些随机字符串
我已经尝试过is.numeric()
,grep()
但是我都不能上班。
我觉得这应该很简单!
谢谢!
我认为data.table
使用.SD
和更通用,更有效的用法lapply
(如果您要转换的不仅仅是两列,并且您不想手动指定它们)
任何一个
library(data.table)
na.omit(setDT(df)[, lapply(.SD, function(x) as.numeric(as.character(x)))])
# Date Temperature
# 1: 41941.67 1921
# 2: 41941.67 1921
# 3: 41941.67 1921
# 4: 41941.67 1921
# 5: 41941.67 1921
# 6: 41941.67 1921
或者
setDT(df)[, names(df) := lapply(.SD, function(x) as.numeric(as.character(x)))][complete.cases(df)]
# Date Temperature
# 1: 41941.67 1921
# 2: 41941.67 1921
# 3: 41941.67 1921
# 4: 41941.67 1921
# 5: 41941.67 1921
# 6: 41941.67 1921
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句