首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发现字母和数字混在一起?

发现字母和数字混在一起?
EN

Stack Overflow用户
提问于 2021-07-02 05:05:08
回答 2查看 73关注 0票数 0

所以我使用的数据集的值是16M而不是16,000,000。如何找到其他货币表示?此数据集非常庞大,因此手动检查是不可行的。谢谢!

下面是前250个样本。数据集的结构如下:国家、年份、GDP(美元)和数据分类(GDP)。

代码语言:javascript
复制
structure(list(country = c("Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", "Aruba", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", 
"Afghanistan"), year = c("1799", "1800", "1801", "1802", "1803", 
"1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", 
"1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", 
"1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", 
"1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", 
"1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", 
"1844", "1845", "1846", "1847", "1848", "1849", "1850", "1851", 
"1852", "1853", "1854", "1855", "1856", "1857", "1858", "1859", 
"1860", "1861", "1862", "1863", "1864", "1865", "1866", "1867", 
"1868", "1869", "1870", "1871", "1872", "1873", "1874", "1875", 
"1876", "1877", "1878", "1879", "1880", "1881", "1882", "1883", 
"1884", "1885", "1886", "1887", "1888", "1889", "1890", "1891", 
"1892", "1893", "1894", "1895", "1896", "1897", "1898", "1899", 
"1900", "1901", "1902", "1903", "1904", "1905", "1906", "1907", 
"1908", "1909", "1910", "1911", "1912", "1913", "1914", "1915", 
"1916", "1917", "1918", "1919", "1920", "1921", "1922", "1923", 
"1924", "1925", "1926", "1927", "1928", "1929", "1930", "1931", 
"1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", 
"1940", "1941", "1942", "1943", "1944", "1945", "1946", "1947", 
"1948", "1949", "1950", "1951", "1952", "1953", "1954", "1955", 
"1956", "1957", "1958", "1959", "1960", "1961", "1962", "1963", 
"1964", "1965", "1966", "1967", "1968", "1969", "1970", "1971", 
"1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979", 
"1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", 
"1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", 
"1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", 
"2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", 
"2012", "1799", "1800", "1801", "1802", "1803", "1804", "1805", 
"1806", "1807", "1808", "1809", "1810", "1811", "1812", "1813", 
"1814", "1815", "1816", "1817", "1818", "1819", "1820", "1821", 
"1822", "1823", "1824", "1825", "1826", "1827", "1828", "1829", 
"1830", "1831", "1832", "1833", "1834"), value = c("16.9M", "16.9M", 
"16.9M", "16.9M", "16.9M", "16.9M", "16.9M", "16.9M", "16.9M", 
"16.9M", "16.9M", "16.9M", "16.9M", "16.9M", "16.9M", "16.9M", 
"16.9M", "16.9M", "16.9M", "16.9M", "16.9M", "17.1M", "17.3M", 
"17.5M", "17.7M", "17.9M", "18.1M", "18.4M", "18.6M", "18.8M", 
"19M", "19.3M", "19.5M", "19.7M", "19.9M", "20.2M", "20.4M", 
"20.7M", "20.9M", "21.2M", "21.4M", "21.7M", "21.9M", "22.2M", 
"22.4M", "22.7M", "23M", "23.3M", "23.5M", "23.8M", "24.1M", 
"24.4M", "24.7M", "25M", "25.3M", "25.6M", "25.9M", "26.2M", 
"26.5M", "26.8M", "27.1M", "27.4M", "27.8M", "28.1M", "28.4M", 
"28.8M", "29.1M", "29.5M", "29.8M", "30.2M", "30.5M", "30.9M", 
"31.3M", "31.6M", "32M", "32.4M", "32.8M", "33.1M", "33.5M", 
"34M", "34.4M", "34.8M", "35.2M", "35.6M", "36M", "36.4M", "36.9M", 
"37.3M", "37.8M", "38.2M", "38.7M", "39.1M", "39.6M", "40M", 
"40.5M", "41M", "41.5M", "42M", "42.5M", "43M", "43.5M", "44M", 
"44.5M", "45.1M", "45.6M", "46.2M", "46.7M", "47.3M", "47.8M", 
"48.4M", "49M", "49.5M", "50.1M", "50.7M", "52.3M", "53.8M", 
"55.4M", "57.1M", "58.8M", "60.5M", "62.3M", "64.2M", "66.1M", 
"68.1M", "70.1M", "72.2M", "74.4M", "76.6M", "78.9M", "81.3M", 
"83.7M", "86.2M", "88.8M", "91.4M", "94.2M", "97M", "99.9M", 
"103M", "106M", "109M", "112M", "116M", "119M", "123M", "126M", 
"130M", "134M", "138M", "142M", "146M", "151M", "155M", "162M", 
"171M", "182M", "196M", "210M", "226M", "243M", "259M", "274M", 
"287M", "298M", "308M", "317M", "327M", "337M", "347M", "358M", 
"369M", "380M", "413M", "450M", "490M", "533M", "579M", "628M", 
"679M", "734M", "795M", "861M", "934M", "1.02B", "1.1B", "1.2B", 
"1.31B", "1.43B", "1.66B", "1.98B", "2.21B", "2.3B", "2.48B", 
"2.61B", "2.79B", "3.02B", "3.1B", "3.16B", "3.43B", "3.7B", 
"3.76B", "3.94B", "3.92B", "3.81B", "3.8B", "4.07B", "4.11B", 
"4.13B", "4.23B", "4.07B", "3.79B", "3.58B", "3.9B", NA, NA, 
"2.08B", "2.08B", "2.08B", "2.08B", "2.08B", "2.08B", "2.08B", 
"2.08B", "2.08B", "2.08B", "2.08B", "2.08B", "2.08B", "2.08B", 
"2.08B", "2.08B", "2.08B", "2.08B", "2.08B", "2.08B", "2.08B", 
"2.1B", "2.12B", "2.13B", "2.15B", "2.17B", "2.19B", "2.2B", 
"2.22B", "2.24B", "2.26B", "2.28B", "2.3B", "2.32B", "2.33B", 
"2.35B"), dataset = c("GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", "GDP", 
"GDP")), row.names = c(NA, -250L), class = c("tbl_df", "tbl", 
"data.frame"))
EN

回答 2

Stack Overflow用户

发布于 2021-07-04 05:38:07

通过OPrequest,我发布了我的informal solution来回答这个特定的问题

如何找到其他货币表示?

GDPLong_dfvalue列中,我简单地删除了数字(可能是小数)“前缀”,剩下的文本保留为“后缀”。

代码语言:javascript
复制
# Extract the denotation suffixes.
currency_denotations <- unique(gsub(pattern = "^\\d+(.\\d+)*", replacement = "",
                                    x = GDPLong_df$value))
# OPTIONALLY: Remove NAs if desired.
currency_denotations <- currency_denotations[!is.na(currency_denotations)]

应用于OP的样本数据,currency_denotations的输出为我们提供了表示法

代码语言:javascript
复制
"M" "B"

这排除了从一开始就是NAvalue产生的任何NA

备注

进一步的正则表达式操作可用于

用于whitespace

  • ensure的点后缀控件对于逗号,“alphabetical

  • control”是严格意义上的分隔符,对于逗号,则是以“("1,234")

  • control”("16,9M")

表示的

但OP已经confirmed了,现有的解决方案足以满足他们的需求。

警告

converting与“十亿”(和“万亿”等)等术语不同时应谨慎使用,因为它们的大小根据不同国家使用的约定而不同:即long and short scales。例如,前者使用“十亿”来描述10^12,而后者使用它来描述10^9。但是,我认为OP的数据集在value列中使用了一个标准化的约定。

票数 1
EN

Stack Overflow用户

发布于 2021-07-02 08:27:56

这是一种提取字母数字后缀并将其含义乘以数字的方法。

代码语言:javascript
复制
library(tidyverse)
df1 %>%
  mutate(mult_txt = value %>% str_extract("[a-z]|[A-Z]"),
         multiplier = case_when(
           mult_txt == "B" ~ 1E9,
           mult_txt == "M" ~ 1E6,
           TRUE ~ 1),
         value_adj = parse_number(value) * multiplier)

结果

代码语言:javascript
复制
# A tibble: 250 x 7
   country year  value dataset mult_txt multiplier value_adj
   <chr>   <chr> <chr> <chr>   <chr>         <dbl>     <dbl>
 1 Aruba   1799  16.9M GDP     M           1000000  16900000
 2 Aruba   1800  16.9M GDP     M           1000000  16900000
 3 Aruba   1801  16.9M GDP     M           1000000  16900000
 4 Aruba   1802  16.9M GDP     M           1000000  16900000
 5 Aruba   1803  16.9M GDP     M           1000000  16900000
 6 Aruba   1804  16.9M GDP     M           1000000  16900000
 7 Aruba   1805  16.9M GDP     M           1000000  16900000
 8 Aruba   1806  16.9M GDP     M           1000000  16900000
 9 Aruba   1807  16.9M GDP     M           1000000  16900000
10 Aruba   1808  16.9M GDP     M           1000000  16900000
# … with 240 more rows

对具有更多值的测试执行...and:

代码语言:javascript
复制
options(scipen = 999) # so the output isn't shown in scientific notation
data.frame(value = c("16.9M", "900000", "192.0Z", "3B")) %>%
  mutate(mult_txt = value %>% str_extract("[a-z]|[A-Z]"),
         multiplier = case_when(
           mult_txt == "B" ~ 1E9,
           mult_txt == "M" ~ 1E6,
           TRUE ~ 1),
         value_adj = parse_number(value) * multiplier)

   value mult_txt multiplier  value_adj
1  16.9M        M    1000000   16900000
2 900000     <NA>          1     900000
3 192.0Z        Z          1        192
4     3B        B 1000000000 3000000000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68216940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档