![](/img/trans.png)
[英]How can I delete multiple character strings in a column and replace it with date
[英]How do I replace multiple character strings in a column to numbers
我相信這是一個簡單的問題,但在網上找不到任何可澄清的地方。 我正在R中處理CSV文件,並且有一列標記為Gender的列具有2個級別“ M”和“ F”。 我正在嘗試更改變量,以使F = 1和M = 0都具有數字類型。 我需要插入什么代碼才能更改性別?
我試過使用gsub,replace函數和以下格式的代碼:
Test[Test$Gender == "F",]$Gender = 1
當我鍵入上面的代碼時,它返回錯誤消息:
[<-.data.frame
(*tmp*
,Test $ Gender ==“ F”,,value = list(中的錯誤::數據幀的下標分配中不允許缺少值
為了正確地將M和F替換為0和1,我需要做什么?
通過控制Gender
水平的一種可能方法是:
#dummy data:
Test = data.frame(Gender = factor(sample(c('M','F'), replace=T, size=10)))
# solution:
Test$Gender = as.integer(factor(Test$Gender, levels=c('F','M')))-1
您可以使用levels
選擇哪個級別(M或F)獲得第一個值。
使用Tidyverse
方法:
library(tidyverse)
Test <- data.frame(Gender=c("F","M","F","M"))
Test %>%
mutate(Gender_mod=case_when(
Gender=="F" ~ 1,
Gender=="M" ~ 0
)
然后創建一個新變量,將舊變量編碼為帶有desiderd值的新變量。
Gender Gender_mod
1 F 1
2 M 0
3 F 1
4 M 0
或者,您可以決定替換原始變量中的值:
Test %>%
mutate(Gender=as.numeric(str_replace_all(string=Gender,pattern=c("F","M"),replacement=c("1","0"))))
這是輸出:
Gender
1 1
2 0
3 1
4 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.