Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
for循环中的函数名不为';不工作_R - Fatal编程技术网

for循环中的函数名不为';不工作

for循环中的函数名不为';不工作,r,R,我有一组data.frame,列的维度相同,但行的数量不同 DATA.FRAME.A Column_A Column_B Column_C Column_D Column_E 2001-02-20 10 11 5 8 DATA.FRAME_B Column_F Column_G Column_W Column_T Column_Q 2008-08-7

我有一组data.frame,列的维度相同,但行的数量不同

DATA.FRAME.A
Column_A     Column_B     Column_C     Column_D      Column_E
2001-02-20      10           11           5              8

DATA.FRAME_B
Column_F     Column_G      Column_W    Column_T      Column_Q
2008-08-7        50           21          10             50

DATA.FRAME_C
Column_H     Column_J      Column_K    Column_S      Column_P
2001-02-02      13           15           61             7
我的目的是使所有data.frame的第一行都相同

我写这个循环是为了让我的代码变得简单

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)
for (i in t ) {
  names[i] <- c("Data", "Open", "Max", "Minimun", "Close")
   }
提前谢谢

弗朗西斯科试试这个:

t <- c("DATA.FRAME.A", "DATA.FRAME.B", "DATA.FRAME.C")
for (i in 1:length(t)) {
    names(get(t[i])) <- c("Data", "Open", "Max", "Minimun", "Close")
}
t试试这个:

t <- c("DATA.FRAME.A", "DATA.FRAME.B", "DATA.FRAME.C")
for (i in 1:length(t)) {
    names(get(t[i])) <- c("Data", "Open", "Max", "Minimun", "Close")
}

t考虑
lappy
,它是apply系列的一部分,是有用的迭代函数,返回与输入相同数量的元素,在您的情况下可以返回修改后的数据帧元素。甚至考虑<代码> StimeNeSes()/Cyth>是返回命名对象的右手函数。

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)

# ITERATE THROUGH EACH DF OF t, RENAMING COLUMNS, RETURNING MODIFIED DF
new_t <- lapply(t, function(i) setNames(i, c("Data", "Open", "Max", "Minimun", "Close"))

 # RESULTS
lapply(new_t, head)

t考虑
lappy
,它是apply系列的一部分,是有用的迭代函数,返回与输入相同数量的元素,在您的情况下可以返回修改后的数据帧元素。甚至考虑<代码> StimeNeSes()/Cyth>是返回命名对象的右手函数。

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)

# ITERATE THROUGH EACH DF OF t, RENAMING COLUMNS, RETURNING MODIFIED DF
new_t <- lapply(t, function(i) setNames(i, c("Data", "Open", "Max", "Minimun", "Close"))

 # RESULTS
lapply(new_t, head)

t根据您编写的代码,循环变量
i
将是list
t
的各个项目(不是列表中的索引,而是列表项目本身)。此外,
colnames
将更直接地用于此目的。编写此循环的更好方法是:

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)
for (i in 1:length(t)) {
  colnames(t[[i]]) <- c("Data", "Open", "Max", "Minimun", "Close")
}

t根据您编写的代码,循环变量
i
将是list
t
的各个项目(不是列表中的索引,而是列表项目本身)。此外,
colnames
将更直接地用于此目的。编写此循环的更好方法是:

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)
for (i in 1:length(t)) {
  colnames(t[[i]]) <- c("Data", "Open", "Max", "Minimun", "Close")
}

t在R中设置列表需要双方括号

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)
for (i in seq_along(t) ) {
  names(t[[i]]) <- c("Data", "Open", "Max", "Minimun", "Close")
 }

t在R中设置列表需要双方括号

t <- list(DATA.FRAME_A, DATA.FRAME_B, DATA.FRAME_C)
for (i in seq_along(t) ) {
  names(t[[i]]) <- c("Data", "Open", "Max", "Minimun", "Close")
 }

t谢谢你的回答,但没有用。R给了我这个错误:get中的错误(
*tmp*
):未找到对象“NA”您是否将data.frame名称中的
\ucode>替换为
点?字符向量
t
中的对象似乎不存在。谢谢您的回答,但不起作用。R给了我这个错误:get中的错误(
*tmp*
):未找到对象“NA”您是否将data.frame名称中的
\ucode>替换为
点?字符向量
t
中的对象似乎不存在。非常感谢!!!它起作用了。我正在学习R,我必须深入拉普莱家族,非常感谢你!!!它起作用了。我正在学习R,我必须深入拉普莱家族,感谢你们的解释和示范。谢谢你们的解释和示范。