想象一下,我从一个 API 得到一个二进制响应,它是一个使用saveRDS()(R-version > 3.5)创建的 .rds 对象。基本上是内置iris数据集的前五行,如cont下面的对象:
cont = as.raw(c(0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x85, 0x50, 0xb1, 0x4e, 0xc3, 0x30, 0x10, 0x75, 0x93, 0xba,
0x6d, 0x42, 0x40, 0xa8, 0xed, 0x6f, 0x90, 0x99, 0xad, 0x9e, 0x98,
0x18, 0x90, 0x0a, 0x82, 0xd5, 0x72, 0x9d, 0x62, 0xc9, 0x24, 0x95,
0x6d, 0x85, 0x95, 0xdf, 0x80, 0x3f, 0x42, 0x82, 0xbf, 0x41, 0x88,
0x09, 0xb0, 0x73, 0xe7, 0x08, 0xd2, 0xa1, 0x27, 0x59, 0xef, 0xee,
0xf9, …Run Code Online (Sandbox Code Playgroud) 这个问题似乎很容易删除R中字符串中的空格。但是,当我加载下表时,我无法删除两个数字之间的空格(例如11 846.4):
require(XML)
library(RCurl)
link2fetch = 'https://www.destatis.de/DE/ZahlenFakten/Wirtschaftsbereiche/LandForstwirtschaftFischerei/FeldfruechteGruenland/Tabellen/AckerlandHauptfruchtgruppenFruchtarten.html'
theurl = getURL(link2fetch, .opts = list(ssl.verifypeer = FALSE) ) # important!
area_cult10 = readHTMLTable(theurl, stringsAsFactors = FALSE)
area_cult10 = data.table::rbindlist(area_cult10)
test = sub(',', '.', area_cult10$V5) # change , to .
test = gsub('(.+)\\s([A-Z]{1})*', '\\1', test) # remove LETTERS
gsub('\\s', '', test) # remove white space?
Run Code Online (Sandbox Code Playgroud)
为什么不能删除其中的空格test[1]?感谢您的任何建议!可以是空格字符吗?也许答案真的很简单,但我却忽略了某些事情。
本报网站在单独的<p>对象中列出了其文章的段落,其中每个<class>属性的名称以文章一词开头.
如何从tz2对象获取<class>属性以文章开头的所有段落?
require(rvest)
url = 'http://taz.de/Kongo-Kunst-im-Bruesseler-Afrikamuseum/!5563620/'
tz = read_html(url)
tz2 = tz %>%
xml_nodes(xpath = "//*[@class='sectbody']") %>%
xml_children()
Run Code Online (Sandbox Code Playgroud)
我的尝试:
# get one paragraph by class attribute
tz2 %>%
xml_nodes(xpath = "//p[@class='article first odd Initial']") %>%
xml_text()
# regex-like get all 'article' paragraphs
tz2 %>%
xml_nodes(xpath = "//p[@starts-with(@class, 'article')]") %>%
xml_text()
Run Code Online (Sandbox Code Playgroud) 我正在将一些来自PostgreSQL连接的光栅文件导入到循环中的R中.我想将我新获得的栅格自动分配给一个变量,该变量的名称来源于输入变量,如下所示:substring(crop, 12)
crop <- "efsa_capri_barley"
ras <- readGDAL(sprintf("PG:dbname='' host='' port='' user='' schema='' table='%s' mode=2", crop))
paste0(substring(crop, 12)) <- raster(ras, 1)
Run Code Online (Sandbox Code Playgroud)
我必须使用什么函数R将substring()的结果识别为字符串而不是函数本身?我在考虑粘贴()但它不起作用.可能这个问题已经被问到了,但我找不到合适的答案.
我有以下向量,并且我想将下标数字(例如?,?)替换为“普通”数字。
vec = c("C?H?ClNO?", "C?H?N?O?", "C?H?NO?", "C?H??O?", "C?H?O?")
Run Code Online (Sandbox Code Playgroud)
我可以查找所有下标值并分别替换它们:
gsub('?', '6', vec)
Run Code Online (Sandbox Code Playgroud)
但是正则表达式中没有这种模式吗?
javascript 也有类似的问题,但我无法将其翻译为R。