[英]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
對象可以包含各種類型: numeric
, character
, factor
,...
現在,通過讀取數據時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.