Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将列表转换为多个数据帧,以便能够仅将每个数据帧的一列转换为数字数据_R_List_Loops_Dataframe - Fatal编程技术网

R 将列表转换为多个数据帧,以便能够仅将每个数据帧的一列转换为数字数据

R 将列表转换为多个数据帧,以便能够仅将每个数据帧的一列转换为数字数据,r,list,loops,dataframe,R,List,Loops,Dataframe,我是R编程新手,我已经有好几天这个问题了。我从拆分文件创建的列表开始。此列表包含许多数据帧。我能够在其中执行一些操作,比如用lappy替换NA中的一些数据。但是现在,我被卡住了,不知道如何在这个巨大的列表中只转换一列数据帧 这是我文件中的一个示例: d1 <- data.frame(foo = c("a", "b", "c", "d", "e"), bar = as.character(c(4.27, 5.68, 5.52, 5.20, 3.67))) d2 <- data.fram

我是R编程新手,我已经有好几天这个问题了。我从拆分文件创建的列表开始。此列表包含许多数据帧。我能够在其中执行一些操作,比如用
lappy
替换
NA
中的一些数据。但是现在,我被卡住了,不知道如何在这个巨大的列表中只转换一列数据帧

这是我文件中的一个示例:

d1 <- data.frame(foo = c("a", "b", "c", "d", "e"), bar = as.character(c(4.27, 5.68, 5.52, 5.20, 3.67)))
d2 <- data.frame(bla = c("a", "e", "c"), blu = as.character(c(10.14, 9.88, 10.01)))
d3 <- data.frame(lol = c("p", "s", "q", "r"), pum = as.character(c(5.96, 1.22, -1.61, 5.05)))
d1[, 2] <- as.character(d1[, 2])
d2[, 2] <- as.character(d2[, 2])
d3[, 2] <- as.character(d3[, 2])
file <- list(d1, d2, d3)
因此,我希望:

[[1]]
 foo  bar
5   e 3.67
1   a 4.27
4   d  5.2
3   c 5.52
2   b 5.68

[[2]]
 bla   blu
2   e  9.88
3   c 10.01
1   a 10.14

[[3]]
 lol   pum
3   q -1.61
2   s  1.22
4   r  5.05
1   p  5.96
在排序之后,我必须在每个数据帧上提取一个特定的行,但是我想如果我了解如何执行此操作,我可能能够做到这一点

经过多次尝试,在这里找到了一条线索,我终于能够做到:

for(i in 1:length(names(file))){
    assign(paste("df", i, sep = ""), file[[i]])
    }
这段代码允许我分离使用
split
函数后的数据帧。现在我想在这个
for
循环中添加一种方法,将一列中的字符数据重新转换为数字数据。我曾尝试在
for
循环中使用类似的代码:

df[, 2] <- sapply(df[,2], as.numeric)
df[,2]我想你想要

lapply(file, function(x) {
    x[[2]] <- as.numeric(x[[2]])        
    x[order(x[[2]]), ]
})
lappy(文件、函数(x){

x[[2]]让我先试试,如果你想验证的话,我用非随机数据更改了rnorm。你介意解释一下你的代码是做什么的吗,这样我才能更好地理解它吗?当然,我添加了一个解释谢谢!我需要更改一点你的代码,因为它在将列更改为数字之前是有序的,但现在我明白了!
lapply(file, function(x) {
    x[[2]] <- as.numeric(x[[2]])        
    x[order(x[[2]]), ]
})