我有一些文本字符串,我想从中提取某些信息。特别是我想从10中提取10个评级。
我想帮助构建一个执行以下操作的函数text_string_vec <- c('blah$2.94 blah blah 3/10 blah blah.',
'foo foo 8/10.',
'10/10 bar bar21/09/2010 bar bar',
'jdsfs1/10djflks5/10.')
func_to_extract_rating <- function(){}
output <- lapply(text_string_vec,func_to_extract_rating)
output
[[1]]
[1] 3 10
[[2]]
[1] 8 10
[[3]]
[1] 10 10
[[4]]
[[4]][[1]]
[1] 1 10
[[4]][[2]]
[1] 5 10
...
File lockFile = new File(target.getParent(), target.getName() + "#LOCK");
lockAccessFile = new RandomAccessFile(lockFile, "rw");
FileChannel lockChannel = lockAccessFile.getChannel();
lock = lockChannel.lock();
答案 0 :(得分:3)
这样的事情可能是:
float:left;
但是因为它总是超过10,如果你只想要数字等级,你可以这样做:
library(stringr)
result = str_extract_all(text_string_vec, "[0-9]{1,2}/10")
result = lapply(result, function(x) gsub("/"," ", x))
[[1]]
[1] "3 10"
[[2]]
[1] "8 10"
[[3]]
[1] "10 10"
[[4]]
[1] "1 10" "5 10"
答案 1 :(得分:1)
这是base R
选项
lapply(strsplit(str1, "([0-9]{1,2}\\/10)(*SKIP)(*FAIL)|.", perl = TRUE),
function(x) {
lst <- lapply(strsplit(x[nzchar(x)], "/"), as.numeric)
if(length(lst)==1) unlist(lst) else lst})
#[[1]]
#[1] 3 10
#[[2]]
#[1] 8 10
#[[3]]
#[1] 10 10
#[[4]]
#[[4]][[1]]
#[1] 1 10
#[[4]][[2]]
#[1] 5 10