我有来自 .csv 文件的以下数据框,其中包含更多行,但为了保持简单,我将其范围缩小到这三行。您还可以在此处访问 csv 文件:https ://dl.dropboxusercontent.com/u/16277659/filter.csv
NAME; YEAR; VALUE
SAMPLE1; 1969; 6
SAMPLE1; 1970; -6
SAMPLE1; 1971; -7
SAMPLE1; 1972; =-X
SAMPLE1; 1972; ST
SAMPLE1; 1972; 3
SAMPLE1; 1975; -7
SAMPLE1; 1976; 3
SAMPLE1; 1977; 3
SAMPLE1; 1978; 0
SAMPLE2; 1991; -15
SAMPLE2; 1992; =X
SAMPLE2; 1992; -58
SAMPLE2; 1994; -40
Run Code Online (Sandbox Code Playgroud)
我想做的是:有时我有定性值(如 =-X、ST 等),我不一定想放弃这些值,但如果同年有一个数值(在 SAMPLE1 1972 = -X 和 ST),我想只保留数值并删除其他值。
你会怎么做?感谢您的帮助。
我还没有掌握正则表达式,所以我首先想到的是:
dat <- read.csv2("filter.csv", as.is=TRUE)
dat$IsNum <- !(is.na(as.numeric(dat$VALUE)))
> dat
NAME YEAR VALUE IsNum
1 SAMPLE1 1969 6 TRUE
2 SAMPLE1 1970 -6 TRUE
3 SAMPLE1 1971 -7 TRUE
4 SAMPLE1 1972 =-X FALSE
5 SAMPLE1 1972 ST FALSE
6 SAMPLE1 1972 3 TRUE
7 SAMPLE1 1975 -7 TRUE
8 SAMPLE1 1976 3 TRUE
9 SAMPLE1 1977 3 TRUE
10 SAMPLE1 1978 0 TRUE
11 SAMPLE2 1991 -15 TRUE
12 SAMPLE2 1992 =X FALSE
13 SAMPLE2 1992 -58 TRUE
14 SAMPLE2 1994 -40 TRUE
Run Code Online (Sandbox Code Playgroud)
从这里开始,检查是否是一个简单的问题IsNum == TRUE
| 归档时间: |
|
| 查看次数: |
12477 次 |
| 最近记录: |