R 将嵌套列表的单个元素从因子转换为字符

R 将嵌套列表的单个元素从因子转换为字符,r,list,dataframe,R,List,Dataframe,我通过从目录中读取所有csv文件创建了一个名为“mydata”的嵌套列表: >临时ls str(mydata) 4人名单 $:'data.frame':51 obs。共有5个变量: ..$Primary.ID:系数w/862级别“X102.034169503712_9.041775”,..:564 621 527 260 566 590 625 68 699 95。。。 ..$PosORNeg:系数w/2级“负”,位置:2 1 2 1 2。。。 ..$p.1.p:num[1:51]-0.435-

我通过从目录中读取所有csv文件创建了一个名为“mydata”的嵌套列表:

>临时ls str(mydata)
4人名单
$:'data.frame':51 obs。共有5个变量:
..$Primary.ID:系数w/862级别“X102.034169503712_9.041775”,..:564 621 527 260 566 590 625 68 699 95。。。
..$PosORNeg:系数w/2级“负”,位置:2 1 2 1 2。。。
..$p.1.p:num[1:51]-0.435-0.278-0.285 0.31-0.233。。。
..$p.corr..1.p:num[1:51]-0.845-0.704-0.598 0.644-0.818。。。
..$VIP.2.:数字[1:51]13.178.247.767.696.84。。。
$:'data.frame':32 obs。共有5个变量:
..$Primary.ID:系数w/862级别“X102.034169503712_9.041775”,..:564 621 527 590 566 358 563 571 625 12。。。
..$PosORNeg:系数w/2级“负”,位置:2 1 2 1。。。
..$p.1.p:num[1:32]-0.468-0.301-0.233-0.183-0.142。。。
..$p.corr..1.p:num[1:32]-0.916-0.813-0.461-0.502-0.705。。。
..$VIP.4.:数字[1:32]13.56 8.58 7.02 5.65 4.03。。。
$:'data.frame':44 obs。共有5个变量:
..$Primary.ID:系数w/862水平“X102.034169503712_9.041775”,..:564 527 232 381 621 590 566 54 625 40。。。
..$PosORNeg:系数w/2级“负”,“位置”:2 1 2 1。。。
..$p.1.p:num[1:44]-0.415-0.323 0.291-0.263-0.279。。。
..$p.corr..1.p:num[1:44]-0.919-0.701 0.681-0.518-0.851。。。
..$VIP.2.:数字[1:44]11.29 8.7 8.6 7.61 7.33。。。
$:'data.frame':43 obs。共有5个变量:
..$Primary.ID:系数w/862级别“X102.034169503712_9.041775”,..:564 621 232 92 210 114 473 563 252 95。。。
..$PosORNeg:系数w/2级“负”,位置:2 1 2 1 2。。。
..$p.1.p:num[1:43]-0.416-0.333-0.251 0.189 0.168。。。
..$p.corr..1.p:num[1:43]-0.73-0.753-0.5630.7830.729。。。
..$VIP.2.:数字[1:43]11.05 8.76 8.05 5.3 5.11。。。
我想编写代码,将每个嵌套列表中的每个“Primary.ID”列从因子转换为字符,但无法确定如何进行转换。另外,在我从中读取它们的目录中有4个csv文件,但我也希望代码能够容纳动态数量的csv文件


谢谢

对基本代码稍作调整可以解决您的问题:

temp <- list.files(pattern="*.csv")
ls <- lapply(files, function(x) read.csv(x, stringsAsFactors = FALSE))

对基本代码稍加调整,即可解决您的问题:

temp <- list.files(pattern="*.csv")
ls <- lapply(files, function(x) read.csv(x, stringsAsFactors = FALSE))

我比我更喜欢tomasu的答案。然而,这里有一种方法可以在读取数据后将
因子
转换为字符

首先,我创建了一些toydata:

mydata <- list(data.frame(col_fac = letters[1:3], y = 3:5), 
               data.frame(col_fac = letters[4:6], z = 101:103))
str(mydata)
List of 2
 $ :'data.frame':   3 obs. of  2 variables:
  ..$ col_fac: Factor w/ 3 levels "a","b","c": 1 2 3
  ..$ y      : int [1:3] 3 4 5
 $ :'data.frame':   3 obs. of  2 variables:
  ..$ col_fac: Factor w/ 3 levels "d","e","f": 1 2 3
  ..$ z      : int [1:3] 101 102 103

我比我更喜欢tomasu的答案。然而,这里有一种方法可以在读取数据后将
因子
转换为字符

首先,我创建了一些toydata:

mydata <- list(data.frame(col_fac = letters[1:3], y = 3:5), 
               data.frame(col_fac = letters[4:6], z = 101:103))
str(mydata)
List of 2
 $ :'data.frame':   3 obs. of  2 variables:
  ..$ col_fac: Factor w/ 3 levels "a","b","c": 1 2 3
  ..$ y      : int [1:3] 3 4 5
 $ :'data.frame':   3 obs. of  2 variables:
  ..$ col_fac: Factor w/ 3 levels "d","e","f": 1 2 3
  ..$ z      : int [1:3] 101 102 103