Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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 - Fatal编程技术网

如何使用我的数据获取R中的列表列表

如何使用我的数据获取R中的列表列表,r,R,这是一个运行良好的函数,但是在我不想要的输出中给出了输出 frequencies <- {} for (k in (1:4)) { interval <- (t(max_period_set[k])) intervals <- round(quantile(interval,c(0,0.05,0.15,0.25,0.35,0.45,0.55,0.65,0.75,0.85,0.95,1.0))) frequency <- {} fo

这是一个运行良好的函数,但是在我不想要的输出中给出了输出

frequencies <- {}

for (k in (1:4))
{   
    interval <- (t(max_period_set[k]))

    intervals <- round(quantile(interval,c(0,0.05,0.15,0.25,0.35,0.45,0.55,0.65,0.75,0.85,0.95,1.0)))
    frequency <- {}
    for (i in (2:length(intervals)))
    {       
        count = 0;      
        for (r in (1:length(interval)))
        {
            if (r == length(interval))
            {
                if (interval[r] >= intervals[i-1] && interval[r] <= intervals[i])
                {
                    count = count + 1
                }
            }
            else
            { 
                if (interval[r] >= intervals[i-1] && interval[r] < intervals[i])
                {
                    count = count + 1
                }
            }
        }   
        frequency <- c(frequency,count)
    }
    frequencies[[length(frequencies)+1]] <- frequency
}
我希望它的格式如下:

[]、[]、[]、[]、[]这是一个列表列表,我可以访问它的第一个元素,如频率[1]以获取第一个列表,等等

如果不可能,如何以当前格式访问第一个列表值?频率[1]不会返回第一个列表值

谢谢你的帮助

还有一个问题:

现在我可以访问数据,但r以不同的格式表示最后一行:

[[1]]
 [1] 1.00 0.96 0.84 0.74 0.66 0.56 0.48 0.36 0.26 0.16 0.06 0.00

[[2]]
 [1] 1.00 0.98 0.84 0.74 0.66 0.56 0.48 0.38 0.26 0.16 0.06 0.00

[[3]]
 [1] 1.00 0.94 0.84 0.74 0.66 0.56 0.48 0.36 0.26 0.16 0.06 0.00

[[4]]
 [1] 1.000000e+00 9.400000e-01 8.400000e-01 7.400000e-01 6.600000e-01 5.800000e-01 4.600000e-01 3.600000e-01 2.600000e-01 1.600000e-01 6.000000e-02 1.110223e-16

为什么会发生这样的事情?前三行是应该的,但最后一行是奇数,数字不是违反规定的数字,因此可以表示为逗号后精度为2的数字。

频率是一个列表,因此您需要

 frequencies[[1]]
访问第一个元素。若列表已命名,则还可以按元素名编制索引

列表是最通用的数据结构,也是唯一可以

  • 嵌套:列表中的列表在
  • 参差不齐:不需要矩形尺寸
所以你应该试着克服最初对不同事实的厌恶。这些都是非常强大的数据结构,在幕后使用很多


编辑:此外,许多基本函数以及附加程序包可以发布进程列表。它从一些基本的东西开始,比如
do.call()
,然后转到
lappy
,最后是
plyr
包。继续阅读——有很多方法可以剥同一只猫的皮,有些方法比其他方法更好。

虽然我完全同意德克关于列表有用性的观点,但如果所有列表长度相同,可以使用
as.data.frame()
将它们转换为数据帧,然后可以按列I
频率[,I]对它们进行索引
或第j行
频率[j,]

谢谢,我现在可以访问它。在元素4中,最后一个数字实际上是零。其他的只是用科学符号表示。您可以使用round()或prettynum()或。。。来处理这个问题。另请参阅R常见问题解答“为什么这两个数字不相等”。浮点运算在计算机上很棘手,这不是R问题。我只想把第四行作为前三行。为什么会有不同的准确度?如何使其与前三个相同?我尝试了prettynum(),但最后的零显示相同:>prettynum(频率[[4]])[1]“1”“0.94”“0.84”“0.74”“0.66”“0.58”“0.46”“0.36”“0.26”“0.16”“0.06”[12]“1.110223e-16”
 frequencies[[1]]