簡體   English   中英

如何在R中選擇矩陣元素?

[英]how to select matrix element in R?

通過以下方式讀取數據

data<-read.csv("userStats.csv", sep=",", header=F)

我試圖在特定位置選擇一個元素。

數據示例(前五行)如下(V2是日期,V3是星期幾):

   V1               V2
1 00002781A2ADA816CDB0D138146BD63323CCDAB2                 2010-09-04
2 00002D2354C7080C0868CB0E18C46157CA9F0FD4                 2010-09-04
3 00002D2354C7080C0868CB0E18C46157CA9F0FD4                 2010-09-07
4 00002D2354C7080C0868CB0E18C46157CA9F0FD4                 2010-09-08
5 00002D2354C7080C0868CB0E18C46157CA9F0FD4                 2010-09-17
                              V3 V4 V5          V6 V7 V8          V9
1 Saturday                        2  2         615  1  1          47
2 Saturday                        2  2          77  1  1          43
3 Tuesday                         1  3         201  1  1         117
4 Wednesday                       1  1          44  1  1          74
5 Friday                          1  1           3  1  1          18

我嘗試通過以下方式在第一行中將第6列與第9列分開:

data[1,6]/data[1,9]

但它返回了一個錯誤

[1] NA
Warning message:
In Ops.factor(data[1, 6], data[1, 9]) : / not meaningful for factors

然后我嘗試只選擇一個元素

> data[2,9]
[1]          43
11685 Levels:            0           1           2           3 ...       55311

但不知道這些級別是什么以及導致錯誤的原因。 有誰知道如何在特定位置的數據[行,列]中選擇一個元素?

謝謝!

R中的標准建模數據結構是data.frame

data.frame對象可以包含各種類型: numericcharacterfactor ,...

現在,通過讀取數據時read.csv()等,你可以得到由默認的衣被合計咬傷stringsAsFactors選項。 我認為您的數據中至少有一行包含文本,因此R決定將其解碼為一個因素並保存 您不再可以對列進行直接數學運算。

簡而言之,對所有列進行summary(data)和/或class()掃描。 根據需要進行轉換,或者將stringsAsFactors變量設置為其他值,或者將二者都設置為其他值。

數據數字化后,您可以根據需要進行划分,切分,切塊,……。

我最喜歡的檢查變量類的工具是str()

您擁有的是一個數據框,並且您要嘗試使用的至少一列是一個因素。 有關如何更改列類的信息,請參見Dirk的答案。

命令

data[1,6]/data[1,9]

是在第六列的第一行中選擇值,然后除以第九列的第一行中的值。 這是你想要的嗎? 如果要使用整個列中的值(而不僅僅是第一行),則應編寫

data[6] / data[9]

要么

data[, 6] / data[, 9]

這兩個參數對於data.frames是等效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM