很抱歉可能有一个完整的noob问题,但我今天刚开始用R编程,我已经被卡住了。
我正在从格式的文件中读取一些数据。
3.482373 8.0093238198371388 47.393873
0.32 20.3131 31.313
我想要做的是分割每一行,然后处理每个单独的数字。
我已经导入了stringr包并使用
x = str_split(line, " ")
这会生成一个我想索引但不知道如何编制的列表。
我已经知道x [[1:2]]获得了第二个元素,但这是关于它的。理想情况下,我想要像
这样的东西x1 = x[1]
x2 = x[2]
x3 = x[3]
但无论如何都找不到这样做。
提前致谢
答案 0 :(得分:2)
使用unlist
,您将得到一个向量而不是向量列表,然后您就可以直接对其进行索引:
R> unlist(str_split("foo bar baz", " "))
[1] "foo" "bar" "baz"
但也许您应该直接从read.table或其变体中读取您的文件?
如果您从R开始,如果您想了解子集,索引等,您真的应该阅读其中一个可用的介绍。
答案 1 :(得分:1)
您可以将str_split
与unlist
一起打包,以获得您正在寻找的行为。
答案 2 :(得分:1)
获取此功能的常用方法是将其导入数据框(一种特殊的列表)。如果文件名是“fil.dat”“并且在”C:/ dir /“
中 dfrm <- read.table("C:/dir/fil.dat") # resist the temptation to use backslashes
dfrm[2,2] # would give you the second item on the second row.
默认情况下,R中的字段分隔符是“white-space”,这似乎就是你所拥有的,所以你不需要提供sep=
参数,read.table函数将尝试导入为数字。为了安全起见,您可以考虑使用colClasses=rep("numeric", 3)
强制该选项,因为如果遇到奇怪的项目(例如通常由Excel转储生成),您将获得一个因子变量,并且可能无法理解如何恢复优雅。