Вопрос:

Есть ли у R такие операторские операции, как Perl qw ()?

r perl

3610 просмотра

6 ответа

113 Репутация автора

Кто-нибудь знает, если у R есть такие котировочные операторы, как Perl qw()для генерации векторных векторов?

Автор: CassJ Источник Размещён: 06.02.2009 03:49

Ответы (6)


23 плюса

76711 Репутация автора

Решение

Нет, но вы можете написать сами:

q <- function(...) {
  sapply(match.call()[-1], deparse)
}

И просто показать это работает:

> q(a, b, c)
[1] "a" "b" "c"
Автор: hadley Размещён: 31.07.2009 07:37

5 плюса

51 Репутация автора

qw = function(s) unlist(strsplit(s,' '))
Автор: Alex Zolot Размещён: 12.12.2010 08:31

8 плюса

2932 Репутация автора

Популярный пакет Hmisc предлагает функцию Cs()для этого:

library(Hmisc)
Cs(foo,bar)
[1] "foo" "bar"

который использует аналогичную стратегию для ответа хасли:

Cs
function (...) 
{
    if (.SV4. || .R.) 
        as.character(sys.call())[-1]
    else {
        y <- ((sys.frame())[["..."]])[[1]][-1]
        unlist(lapply(y, deparse))
    }
}
<environment: namespace:Hmisc>
Автор: patrickmdnet Размещён: 28.06.2011 11:17

11 плюса

69082 Репутация автора

Я добавил эту функцию в свой файл Rprofile.site (см., ?StartupЕсли вы не знакомы)

qw <- function(x) unlist(strsplit(x, "[[:space:]]+"))

qw("You can type    text here
    with    linebreaks if you
    wish")
#  [1] "You"        "can"        "type"       "text"      
#  [5] "here"       "with"       "linebreaks" "if"        
#  [9] "you"        "wish"    
Автор: flodel Размещён: 04.04.2012 01:56

3 плюса

1014 Репутация автора

Еще проще:

qw <- function(...){
as.character(substitute(list(...)))[-1]
}
Автор: Ben Rollert Размещён: 15.05.2015 10:20

0 плюса

564 Репутация автора

фрагмент, работающий для случая, когда вектор передается, например, v=c('apple','apple tree','apple cider'). You would get c('"apple"','"apple tree"','"apple cider"')

quoted = function(v){
    base::strsplit(paste0('"', v, '"',collapse = '/|||/'), split = '/|||/',fixed = TRUE)[[1]]
}
Автор: Jerry T Размещён: 05.11.2018 04:29
Вопросы из категории :
32x32