R将因子列转换为不起作用的字符

R将因子列转换为不起作用的字符,r,type-conversion,character,R,Type Conversion,Character,我有这样一个数据集: > head(data3, n = 10) city company_name event_date name state street team_name 1 5/14/2016 Heart Walk 2015-2016 S

我有这样一个数据集:

> head(data3, n = 10)
   city company_name event_date                                                  name state street                                team_name
1                     5/14/2016                     Heart Walk 2015-2016 St. Louis MO                                          Team Clayton
2                     9/26/2015                       Heart Walk 2015-2016 Canton, OH    OH                               Cardiac Crusaders
3                     9/12/2015                       Heart Walk 2015-2016 Dallas, TX    TX                                BIS - Team Myers
4                      6/3/2017                  FDA HW 2016-2017 Albany, NY WO-65355                                   Independent Walkers
5                      5/6/2017               FDA HW 2016-2017 New Haven, CT WO-66497                                                      
6                    10/17/2015                  Heart Walk 2015-2016 Puget Sound, WA    WA            UB SEA/North: Arlington-Smokey Point
7                     9/17/2016                    Heart Walk 2016-2017 San Diego, CA                           MUFG ISA SD: Town Center Dr
8                     9/27/2015                     Heart Walk 2015-2016 Triangle, NC                    Fabulous Foster and the Pacemakers
9                     10/1/2016 Heart Walk 2016-2017 Gulf Coast (Gulfport-Biloxi), MS    MS                                Cardiac Division
10                    10/8/2016                Heart Walk 2016-2017 Pierce County, WA    WA        Brains & Hearts- the Important Parts
这些列是较大数据集的一部分。我尝试使用以下代码将它们从因子转换为字符串:

chr_cols <- c("city", "company_name", "event_date", "name", "state", "street", "team_name")
data3 <- as.data.frame(lapply(data[chr_cols], as.character))

出了什么问题,我该如何解决

默认情况下,帧将字符向量转换回因子。通过提供:

data3 <- as.data.frame(lapply(data[chr_cols], as.character), stringsAsFactors=F)

data3当您执行
as.data.frame
时,
stringsAsFactors=TRUE
因此,它将再次将其更改为
factor
。使用
stringsAsFactors=FALSE
或将其分配给感兴趣的列,即
数据[chr\u cols]或者,使用tidyverse解决方案:
作为数据帧<代码>字符串因素
再次罢工。谢谢!我试过了,但是我做了
as.data.frame(lappy(data[chr\u cols],as.character,stringsAsFactors=F))
所以这就解决了它
data3 <- as.data.frame(lapply(data[chr_cols], as.character), stringsAsFactors=F)