【发布时间】:2015-10-27 18:21:11
【问题描述】:
我有一个数据框(我们称之为“df”),它由两列组成
Name Contact
A 34552325
B 423424
C 4324234242
D hello1@company.com
我想根据“联系人”列中的一行是否为数字将数据框拆分为两个数据框
预期输出:
Name Contact
A 34552325
B 423424
C 4324234242
和
Name Contact
D hello1@company.com
我厌倦了使用:
df$IsNum <- !(is.na(as.numeric(df$Contact)))
但这也将“hello1@company.com”归类为数字。
基本上,如果“联系人”列中甚至有一个非数字值,那么代码必须将其归类为非数字
【问题讨论】:
-
你可能有因素,所以
as.numeric行不通,试试split(df, is.na(as.numeric(as.character(df$Contact))))可能 -
在我完成
df$Contact <- as.vector(df$Contact)之后,我采用了您的方法。我也喜欢这个df$IsNum <- suppressWarnings({!(is.na(as.numeric(df$Contact)))}),以摆脱warning message
标签: r dataframe table-splitting