R.Last.value错误
我必须循环浏览一个列表,当我索引它时,R.Last.value错误,r,reference,R,Reference,我必须循环浏览一个列表,当我索引它时,.Last.value停止工作。 示例: 清单: x [[1]] cd_entrada qx laplace r 21 1 0.65 50 16.35 141 1 0.65 0 11.24 81 1 0.80 0 2.87 181 0 0.75 25 2.68 [[2]] cd_entrada qx pe
.Last.value
停止工作。
示例:清单:
x
[[1]]
cd_entrada qx laplace r
21 1 0.65 50 16.35
141 1 0.65 0 11.24
81 1 0.80 0 2.87
181 0 0.75 25 2.68
[[2]]
cd_entrada qx penalty stepno r
1 0 0.40 10 1500 12.64
2 1 0.45 400 2000 21.58
3 1 0.35 400 750 19.38
4 1 0.45 400 1000 12.78
5 1 0.55 400 1500 4.77
6 1 0.50 400 750 4.79
7 1 0.65 400 750 1.80
8 1 0.75 100 750 1.80
9 2 0.65 100 1500 1.95
10 0 0.40 10 750 9.18
11 0 0.35 200 1000 7.90
12 1 0.45 100 1500 5.65
13 0 0.60 100 750 2.80
第一元素的过滤线
(x[[1]])[.Last.value$cd_entrada==0 & .Last.value$laplace==25,]
cd_entrada qx laplace r
181 0 0.75 25 2.68
没关系。但是当我用I
替换1
时,它会给出错误:
i=1
(x[[i]])[.Last.value$cd_entrada==0 & .Last.value$laplace==25,]
Error in .Last.value$cd_entrada :
$ operator is invalid for atomic vectors
但是.Last.value
仍然返回相同的数据帧:
(x[[i]]); .Last.value
cd_entrada qx laplace r
21 1 0.65 50 16.35
141 1 0.65 0 11.24
81 1 0.80 0 2.87
181 0 0.75 25 2.68
cd_entrada qx laplace r
21 1 0.65 50 16.35
141 1 0.65 0 11.24
81 1 0.80 0 2.87
181 0 0.75 25 2.68
附言
.Last.value
将在您每次执行另一项作业(如x=1
时更改。此时,.Last.value
将只是一个长度为1的向量,其值为1
。不能在函数或子集操作中使用.Last.value
。仅当您希望检索可能未分配给名称的内容时才可靠。例如,您刚刚输入了一个复杂的ggplot2调用,不想从控制台中刮取结果,然后编辑掉额外的行继续符“+”-符号。您可以执行:
my_last_plot <- .Last.value
不是你得到的结果,但如果我们先看x[[1]]:
x[[1]]
# cd_entrada qx laplace r
#21 1 0.65 50 16.35
#141 1 0.65 0 11.24
#81 1 0.80 0 2.87
#181 0 0.75 25 2.68
(x[[1]])[.Last.value$cd_entrada==0 & .Last.value$laplace==25,]
# cd_entrada qx laplace r
#181 0 0.75 25 2.68
如果要可靠地执行该操作,请使用以下代码:
i=1
x[[i]][ x[[i]]$cd_entrada==0 & x[[i]]$laplace==25, ]
#-----------
cd_entrada qx laplace r
181 0 0.75 25 2.68
.Last.value
将在您每次执行另一项作业(如x=1
时更改。此时,.Last.value
将只是一个长度为1的向量,其值为1
。不能在函数或子集操作中使用.Last.value
。仅当您希望检索可能未分配给名称的内容时才可靠。例如,您刚刚输入了一个复杂的ggplot2调用,不想从控制台中刮取结果,然后编辑掉额外的行继续符“+”-符号。您可以执行:
my_last_plot <- .Last.value
不是你得到的结果,但如果我们先看x[[1]]:
x[[1]]
# cd_entrada qx laplace r
#21 1 0.65 50 16.35
#141 1 0.65 0 11.24
#81 1 0.80 0 2.87
#181 0 0.75 25 2.68
(x[[1]])[.Last.value$cd_entrada==0 & .Last.value$laplace==25,]
# cd_entrada qx laplace r
#181 0 0.75 25 2.68
如果要可靠地执行该操作,请使用以下代码:
i=1
x[[i]][ x[[i]]$cd_entrada==0 & x[[i]]$laplace==25, ]
#-----------
cd_entrada qx laplace r
181 0 0.75 25 2.68
i=1
将.Last.value
更改为1和1$something
将给您一个错误。你为什么还要使用.Last.value
?似乎(不)可避免的风险我希望。Last.value
将得到括号内的操作结果;但是它会得到上一行操作。i=1
将更改为最后一行。value
为1和1$something
将给您一个错误。你为什么还要使用.Last.value
?似乎(不)可避免的风险我希望。Last.value
将得到括号内的操作结果;但是它得到了上一行operation.tks,@42-我希望是这样的。Last.value将得到括号内操作的结果;但是它得到了上一行operation.tks,@42-我希望是这样的。Last.value将得到括号内操作的结果;但它得到了前一行的操作。