mutate를 사용하여 for 루프의 목록에서 열을 만드는 방법

유령 같은

mutate()for 루프 내 에서 함수를 사용하여 R의 목록에서 여러 열을 만드는 방법이 있는지 궁금합니다 .

내가 의미하는 바의 예는 다음과 같습니다.

문제 :

df카테고리와 등급이라는 2 개의 열 이있는 데이터 프레임 이 있습니다. 해당 열의 모든 요소에 대해 열을 추가하고 df$category싶습니다. 범주 열이 반복자와 일치하면 1이 필요합니다.

library(dplyr)

df <- tibble(
  category = c("Art","Technology","Finance"),
  rating = c(100,95,50)
)

수동으로 수행하면 다음과 같이 할 수 있습니다.

df <-
  df %>% 
  mutate(art = ifelse(category == "Art", 1,0))

하지만 50 개의 카테고리가 있으면 어떻게됩니까? (내가 원래 문제에서 가지고있는 것과 비슷합니다. 시간이 많이 걸립니다!)

내가 시도한 것 :

category_names <- df$category

for(name in category_names){

  df <-
    df %>% 
    mutate(name = ifelse(category == name, 1,0))

}

불행히도 작동하지 않는 것 같습니다.

나는 주제에 대한 어떤 빛을 고맙게 생각합니다!

전체 코드 :

library(dplyr)

#Creates tibble
df <- tibble(
  category = c("Art","Technology","Finance"),
  rating = c(100,95,50)
)

#Showcases the operation I would like to loop over df
df <-
  df %>% 
  mutate(art = ifelse(category == "Art", 1,0))

#Creates a variable for clarity
category_names <- df$category

#For loop I tried
for(name in category_names){

  df <-
    df %>% 
    mutate(name = ifelse(category == name, 1,0))

}

나는 내가 본질적으로하고있는 것이 다음과 같은 형태라는 것을 알고있다 model.matrix(). 그러나 그 기능에 대해 알기 전에 나는 이전에하던 일이 왜 작동하지 않는지 여전히 당황했습니다.

Akrun

pivot_wider시퀀스 컬럼 생성 후 사용할 수 있습니다.

library(dplyr)
library(tidyr)
df %>% 
    mutate(rn = row_number(), n = 1) %>% 
    pivot_wider(names_from = category, values_from = n, 
             values_fill = list(n = 0)) %>%
    select(-rn)
# A tibble: 3 x 4
#  rating   Art Technology Finance
#   <dbl> <dbl>      <dbl>   <dbl>
#1    100     1          0       0
#2     95     0          1       0
#3     50     0          0       1

또는 다른 옵션은 map

library(purrr)
map_dfc(unique(df$category),  ~  df %>%
                                 transmute(!! .x := +(category == .x))) %>% 
     bind_cols(df, .)
# A tibble: 3 x 5
#  category   rating   Art Technology Finance
#* <chr>       <dbl> <int>      <int>   <int>
#1 Art           100     1          0       0
#2 Technology     95     0          1       0
#3 Finance        50     0          0       1

for루프 가 필요한 경우

for(name in category_names) df <- df %>% mutate(!! name := +(category == name))

또는 base Rtable

cbind(df, as.data.frame.matrix(table(seq_len(nrow(df)), df$category)))
#    category rating Art Finance Technology
#1        Art    100   1       0          0
#2 Technology     95   0       0          1
#3    Finance     50   0       1          0

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

구분 기호를 사용하여 JavaScript의 단일 목록에서 하위 목록을 만드는 방법

분류에서Dev

Java의 두 목록에서 Stream Api를 사용하여 목록을 만드는 방법

분류에서Dev

while in 루프를 사용하여 목록 이해력을 만드는 방법

분류에서Dev

WHILE 루프 내부에서 FOREACH 루프를 사용하여 여러 열을 만드는 방법

분류에서Dev

루프를 사용하여 배열을 만드는 방법

분류에서Dev

JAVA에서 세 개의 foreach 루프를 사용하여 단일 3 요소 컬렉션 목록을 만드는 방법.?

분류에서Dev

자바를 사용하여 배열의 목록을 만드는 방법

분류에서Dev

for 루프를 사용하여 여러 파일에 열 제목 목록을 추가하는 방법

분류에서Dev

for 루프를 사용하여 Java에서 역 삼각형을 만드는 방법

분류에서Dev

루프를 사용하여 자바에서 테이블을 만드는 방법

분류에서Dev

내 콘솔 애플리케이션에서 appSettings의 값을 사용하여 루프를 만드는 방법

분류에서Dev

루프를 사용하여 사전에 목록을 추가하는 방법

분류에서Dev

Javascript에서 여러 ID를 사용하여 ID 또는 루프 목록을 만드는 방법은 무엇입니까?

분류에서Dev

여러 루프를 사용하지 않고 사전 목록에서 각 레코드의 별도 사전을 얻는 방법은 무엇입니까?

분류에서Dev

중첩 된 for 루프를 사용하여 JavaScript에서 객체 내 배열의 이름 및 목록을 찾는 방법

분류에서Dev

matlab에서 datetime 형 배열을 사용하여 for-if 루프를 만드는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 루프를 사용하여 연관 배열을 만드는 방법

분류에서Dev

루프를 사용하여 사전을 만드는 방법?

분류에서Dev

r의 rev () 및 루프를 사용하여 목록에 적용하는 방법

분류에서Dev

루프 (for)를 사용하여 R의 목록에있는 이름을 사용하여 .file 및 write.csv를 다운로드하는 방법

분류에서Dev

저장 프로 시저를 사용하여 루프에서 SQL 열의 값을 구문 분석하는 방법

분류에서Dev

fgets에서 for 루프를 사용하도록 배열을 만드는 방법은 무엇입니까?

분류에서Dev

파이썬의 목록에서 슬라이싱 연산자를 사용하여 for 루프에서 부작용을 피하는 방법은 무엇입니까?

분류에서Dev

datetime df에서 작동하는 if 문을 사용하여 for 루프를 목록 이해로 바꾸는 방법

분류에서Dev

dplyr에서 mutate를 사용하기 위해 외부 목록에서 올바르게 루프하는 방법

분류에서Dev

for 루프를 사용하여 Python에서 중첩 된 목록을 반복하는 방법

분류에서Dev

목록의 값에서 URL의 값을 대체하고 FOR 루프를 사용하여 모두를 반복하는 방법

분류에서Dev

for 루프를 사용하여 루프의 각 반복에서 새 데이터 프레임을 만드는 방법은 무엇입니까?

분류에서Dev

foreach 루프를 사용하여 HTML을 만드는 방법

Related 관련 기사

  1. 1

    구분 기호를 사용하여 JavaScript의 단일 목록에서 하위 목록을 만드는 방법

  2. 2

    Java의 두 목록에서 Stream Api를 사용하여 목록을 만드는 방법

  3. 3

    while in 루프를 사용하여 목록 이해력을 만드는 방법

  4. 4

    WHILE 루프 내부에서 FOREACH 루프를 사용하여 여러 열을 만드는 방법

  5. 5

    루프를 사용하여 배열을 만드는 방법

  6. 6

    JAVA에서 세 개의 foreach 루프를 사용하여 단일 3 요소 컬렉션 목록을 만드는 방법.?

  7. 7

    자바를 사용하여 배열의 목록을 만드는 방법

  8. 8

    for 루프를 사용하여 여러 파일에 열 제목 목록을 추가하는 방법

  9. 9

    for 루프를 사용하여 Java에서 역 삼각형을 만드는 방법

  10. 10

    루프를 사용하여 자바에서 테이블을 만드는 방법

  11. 11

    내 콘솔 애플리케이션에서 appSettings의 값을 사용하여 루프를 만드는 방법

  12. 12

    루프를 사용하여 사전에 목록을 추가하는 방법

  13. 13

    Javascript에서 여러 ID를 사용하여 ID 또는 루프 목록을 만드는 방법은 무엇입니까?

  14. 14

    여러 루프를 사용하지 않고 사전 목록에서 각 레코드의 별도 사전을 얻는 방법은 무엇입니까?

  15. 15

    중첩 된 for 루프를 사용하여 JavaScript에서 객체 내 배열의 이름 및 목록을 찾는 방법

  16. 16

    matlab에서 datetime 형 배열을 사용하여 for-if 루프를 만드는 방법은 무엇입니까?

  17. 17

    자바 스크립트에서 루프를 사용하여 연관 배열을 만드는 방법

  18. 18

    루프를 사용하여 사전을 만드는 방법?

  19. 19

    r의 rev () 및 루프를 사용하여 목록에 적용하는 방법

  20. 20

    루프 (for)를 사용하여 R의 목록에있는 이름을 사용하여 .file 및 write.csv를 다운로드하는 방법

  21. 21

    저장 프로 시저를 사용하여 루프에서 SQL 열의 값을 구문 분석하는 방법

  22. 22

    fgets에서 for 루프를 사용하도록 배열을 만드는 방법은 무엇입니까?

  23. 23

    파이썬의 목록에서 슬라이싱 연산자를 사용하여 for 루프에서 부작용을 피하는 방법은 무엇입니까?

  24. 24

    datetime df에서 작동하는 if 문을 사용하여 for 루프를 목록 이해로 바꾸는 방법

  25. 25

    dplyr에서 mutate를 사용하기 위해 외부 목록에서 올바르게 루프하는 방법

  26. 26

    for 루프를 사용하여 Python에서 중첩 된 목록을 반복하는 방법

  27. 27

    목록의 값에서 URL의 값을 대체하고 FOR 루프를 사용하여 모두를 반복하는 방법

  28. 28

    for 루프를 사용하여 루프의 각 반복에서 새 데이터 프레임을 만드는 방법은 무엇입니까?

  29. 29

    foreach 루프를 사용하여 HTML을 만드는 방법

뜨겁다태그

보관