Як перетворити стовпець кадру даних у вектор у r


Щоб перетворити стовпець фрейму даних у вектор у R, можна використати один із наведених нижче трьох методів:

 #use $operator
new_vector <- df$column_name

#use indexing
new_vector <- df[[' column_name ']]

#use 'pull' from dplyr package
new_vector <- dplyr::pull(df, column_name)

Кожен із цих методів повертає ідентичні результати.

У наведених нижче прикладах показано, як використовувати кожен із цих методів на практиці з таким кадром даних:

 #create data frame
df <- data. frame (a=c(1, 2, 5, 6, 12, 14),
                 b=c(8, 8, 9, 14, 22, 19),
                 c=c(3, 3, 2, 1, 2, 10))

#display data frame
df

   ABC
1 1 8 3
2 2 8 3
3 5 9 2
4 6 14 1
5 12 22 2
6 14 19 10

Приклад 1: використання оператора $

У наступному коді показано, як використовувати оператор $ для перетворення стовпця фрейму даних у вектор:

 #convert column 'a' to vector
new_vector <- df$a

#view vector
new_vector

[1] 1 2 5 6 12 14

#view class of vector
class(new_vector)

[1] "digital"

Приклад 2: використання індексації

Наступний код показує, як використовувати індексування для перетворення стовпця кадру даних у вектор:

 #convert column 'a' to vector
new_vector <- df[[' a ']]

#view vector
new_vector

[1] 1 2 5 6 12 14

#view class of vector
class(new_vector)

[1] "digital"

Приклад 3: використовуйте ‘pull’ з dplyr

Наступний код показує, як використовувати функцію “pull” пакета dplyr для перетворення стовпця кадру даних у вектор:

 library (dplyr)

#convert column 'a' to vector
new_vector <- pull(df, a)

#view vector
new_vector

[1] 1 2 5 6 12 14

#view class of vector
class(new_vector)

[1] "digital"

Зауважте, що всі три методи повертають ідентичні результати.

Примітка . Якщо ви працюєте з надзвичайно великим набором даних, функція «витягнути» в пакеті dplyr виконуватиме найшвидше з трьох функцій, наведених у цьому посібнику.

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

Як перетворити матрицю на вектор у R
Як перетворити список на кадр даних у R
Як перетворити символ на число в R

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

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