Как я фильтрую R выражение в PowerBI - PullRequest
0 голосов
/ 13 марта 2019

Программное обеспечение: PowerBI (скачать бесплатно на https://powerbi.microsoft.com/en-us/downloads/)

R версия: R-3.5.3

Вот анимированный GIF процесса, за которым я следую

enter image description here

Я пытаюсь отфильтровать код R

Вот мои данные

GROUP_NAME    
Madison\Manual\02M477-Shift Stick    
Unknown    
Barbie\Instant\08X048    
Earrings\Instant\30Q739    
Barbie\Instant\08X130    
Earrings\Instant\26Q430

enter image description here

Я хочу, чтобы это выглядело так

enter image description here

Я пытался добавить логическую переменную isValid (ИСТИНА, если сопоставлено регулярное выражение, иначе ЛОЖЬ)

Затем я попытался оценить isValid перед добавлением в набор данных (который заполняет новый столбец Building)

Если isValid - ИСТИНА, выходная цифра цифра буква цифра цифра цифра цифра

иначе, если isValid ЛОЖЬ, выведите ""

# 'dataset' holds the input data for this script
pattern <- "[[:digit:]]{2}[[:alpha:]]{1}[[:digit:]]{3}"
isValid <- function(x) {grepl(pattern , as.character(x), ignore.case=TRUE)}
bldgCode <- function(x) {grep(pattern , as.character(x), ignore.case=TRUE, value=TRUE)}
output <- within(dataset,{if (isValid==TRUE){Building=bldgCode(dataset$GROUP_NAME)} else " "})

Вместо этого я получаю ошибку, помогите

DataSource.Error: ADO.NET: R script error.
Error in isValid == TRUE : 
  comparison (1) is possible only for atomic and list types
Calls: within -> within.data.frame -> eval -> eval
Execution halted

Details:
    DataSourceKind=R
    DataSourcePath=R
    Message=R script error.
Error in isValid == TRUE : 
  comparison (1) is possible only for atomic and list types
Calls: within -> within.data.frame -> eval -> eval
Execution halted

    ErrorCode=-2147467259
    ExceptionType=Microsoft.PowerBI.Scripting.R.Exceptions.RScriptRuntimeException
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...