【发布时间】:2016-04-13 11:37:01
【问题描述】:
我有一个包含数千个元素的列表——一些元素包含年份——它们是 4 个数字的字符串——其他元素包含我需要删除的随机数。
我只需要从列表中提取长度为 4 的数字,并删除所有其他数字。最后,我需要一个包含 20 行的数据框和包含嵌套在列表中的年份的列。例如,在下面的示例中,我需要一个看起来像这样的表。
> sample_years
element year year.1 year.2 year.3
1 1 NA NA NA NA
2 2 NA 1918 NA NA
3 3 NA NA NA NA
4 4 NA NA NA NA
5 5 NA 1912 1913 NA
6 6 NA 1893 1898 1925
7 7 NA 1820 1830 1899
8 8 NA NA NA NA
9 9 NA 1808 1810 1854
10 10 NA NA NA NA
11 11 NA NA NA NA
12 12 NA 1885 NA NA
13 13 NA 1900 NA NA
14 14 NA 1926 1933 NA
15 15 NA NA NA NA
16 16 NA NA NA NA
17 17 NA 1870 NA NA
18 18 NA NA 1923 NA
19 19 NA NA NA NA
20 20 NA NA NA NA
> dput(sample)
list(c("", "2"), c("", "1918"), "", "", c("", "1912", "1913"),
c("", "1893", "1898", "1925", "1993"), c("", "1820", "1830",
"1899", "1900"), "", c("", "1808", "1810", "1854", "1905",
"1907"), "", "", c("", "1885"), c("", "1900"), c("", "1926",
"1933"), "", "", c("", "1870"), c("", "1", "1923"), "", "")
【问题讨论】:
-
元素 9 包含 5 个四位数字,但生成的数据帧只有其中三个。
year列是怎么回事?应该一直是NA吗? -
举个例子会很有帮助:stackoverflow.com/questions/5963269/…。同时:l = sample(800:1200, 10); l[grep("\\d{4}", l)]