我试图直接在Rstudio中直接从数据创建一个简单的2列表。
所以输出应该是。
Material Kilograms
Iron 5.54
Copper 2.12
Tin 0.27
Zinc 0.60
Nickel 0.23
Barium 0.05
Other 6.44
所以按照这里的示例Creating tables directly,这是我应该遵循的一般语法。
> smoke <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
> colnames(o) <- c("High","Low","Middle")
> rownames(o) <- c("current","former","never")
> smoke <- as.table(smoke)
> smoke
High Low Middle
current 51 43 22
former 92 28 21
never 68 22 9
所以调整我的代码这是我创建的,注意到我打算让第一列有一个材料名称。
levels <- matrix(c(5.54,2.12,0.27,0.60,0.23,0.05,6.44),ncol=1,byrow=TRUE)
colnames(0) <- c("Materials","Kilograms")
rownames(0) <- c("Iron","Copper","Tin","Zinc","Nickel","Barium","Other")
levels <- as.table(levels)
levels
然而它解决了这个问题。
R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"
> levels <- matrix(c(5.54,2.12,0.27,0.60,0.23,0.05,6.44),ncol=1,byrow=TRUE)
> colnames(o) <- c("Materials","Kilograms")
Error in colnames(o) <- c("Materials", "Kilograms") :
object 'o' not found
> rownames(o) <- c("Iron","Copper","Tin","Zinc","Nickel","Barium","Other")
Error in rownames(o) <- c("Iron", "Copper", "Tin", "Zinc", "Nickel", "Barium", :
object 'o' not found
> levels <- as.table(levels)
> levels
A
A 5.54
B 2.12
C 0.27
D 0.60
E 0.23
F 0.05
G 6.44
所以我认为字体可能导致我在colnames和rownames中键入 o 而不是 0 ,但仍然会导致类似的错误。
修改
由于没有可以直接创建上面发布的简单材料公斤表的答案,我是否应该假设在excel中创建表格并链接到该表格或从excel导出为csv更常见或更容易?
答案 0 :(得分:1)
表格用于数字。 data.frame是用于存储混合数据类型(以及一般数据)的标准结构。
您可以使用以下内容:
o <- data.frame(Material=c("Iron","Copper","Tin","Zinc","Nickel","Barium","Other"), Kilograms=c(5.54,2.12,0.27,0.60,0.23,0.05,6.44), row.names=c("Iron","Copper","Tin","Zinc","Nickel","Barium","Other"))
材料本身就是rowname和数据列。
您可以使用
将data.frame转换为表格xtabs(Kilograms~Material, data=o)
但结果将按字母顺序排列材料级别。
答案 1 :(得分:1)
您在最后两个代码块之间混淆了0和o。但问题是,您最初将数据写入“级别”。但是然后命名&#39; o&#39;。
的行和列通常使用与函数相同的名称来调用变量通常是一个坏主意,在这种情况下是&#39;级别&#39;。
答案 2 :(得分:0)
我找到了一个我从R for Dummies改编的答案。
答案似乎很容易解决,并且不需要复杂的语法来实现,这在R教程和我之前搜索过的其他SO答案中都有出现。
materials <- c("Iron","Copper","Tin","Zinc","Nickel","Barium","Other")
kilograms <- c(5.54,2.12,0.27,0.60,0.23,0.05,6.44)
levels.data <- data.frame(materials,kilograms)
如果有人能够提供更好的答案或表现出一种值得赞赏的改进。