Як виправити: помилка в strsplit(unitspec, ” “): аргумент без символу


Помилка, з якою ви можете зіткнутися в R:

 Error in strsplit(df$my_column, split = "1"): non-character argument 

Ця помилка зазвичай виникає, коли ви намагаєтеся використати функцію strsplit() у R, щоб розділити рядок, коли об’єкт, з яким ви працюєте, не є рядком.

Цей посібник пояснює, як саме виправити цю помилку.

Як відтворити помилку

Припустимо, що ми маємо наступний кадр даних у R:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C'),
                 dots=c(91910, 14015, 120215))

#view data frame
df

  team points
1 A 91910
2 B 14015
3 C 120215

Тепер припустімо, що ми спробуємо використати функцію strsplit() , щоб розділити значення в стовпці «points» на основі числа 1:

 #attempt to split values in points column
strsplit(df$points, split="1")

Error in strsplit(df$points, split = "1"): non-character argument

Ми отримуємо помилку, оскільки змінна “points” не є символом.

Ми можемо підтвердити це, перевіривши клас цієї змінної:

 #display class of "points" variable
class(df$points)

[1] "digital"

Ми бачимо, що ця змінна має числовий клас.

Як виправити помилку

Спосіб виправити цю помилку полягає в тому, щоб використати as.character() для перетворення змінної “points” на символ перед спробою використання функції strsplit() :

 #split values in points column based on where 1 appears
strsplit(as. character (df$points), split="1")

[[1]]
[1990"

[[2]]
[1] "" "40" "5" 

[[3]]
[1] "" "202" "5"

Цього разу ми успішно розділили кожне значення в стовпці «points», оскільки спочатку використали функцію as.character() , щоб перетворити «points» на символ.

Додаткові ресурси

У наступних посібниках пояснюється, як вирішити інші поширені помилки в R:

Як виправити в R: імена не збігаються з попередніми іменами
Як виправити в R: більше стовпців, ніж імен стовпців
Як відновити в R: заміна має X рядків, дані мають Y

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *