如何使用我的数据获取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]]