0

csv ファイルに x、y、z のマトリックスがあります。x と y は z 値の物理的な位置です。最初の列は x 位置、最初の行は y 位置です。

   0  1  2  3  4  5  6      
0  z values   
1    
2    
3    
4

3 列のマトリックスやデータ フレームを作成したいと思います。

X  Y    Z  
0  0  6.7
0  1  9.0

等々。

目的は、これらのデータのレリーフ マップまたは xyz プロットを作成することです。

これを一掃することについて何か考えはありますか?

raw <- as.data.frame(read.csv(choose.files(), header = FALSE))
raw <- raw[2:15, 2:29]
rownames(raw) <- 0:13
colnames(raw) <- 0:27
g <- transform(expand.grid(x=as.numeric(rownames(raw)), 
                           y=as.numeric(colnames(raw))), 
               z=unlist(raw))

raw2 行目は、値のみとして宣言することzです。

2 行目、3 行目、4 行目を一般化することについて何か考えはありますか?

4

1 に答える 1

2

これを試して:

transform(expand.grid(x=as.numeric(rownames(df)), 
                      y=as.numeric(colnames(df))), 
                      z=unlist(df))

テストデータ (@Roland より)

set.seed(42)
m <- matrix(rnorm(25),ncol=5)
df <- as.data.frame(m)
rownames(df) <- colnames(df) <- 0:4

#    x y           z
# 01 0 0  1.37095845
# 02 1 0 -0.56469817
# 03 2 0  0.36312841
# 04 3 0  0.63286260
# 05 4 0  0.40426832
# 11 0 1 -0.10612452
# 12 1 1  1.51152200
# 13 2 1 -0.09465904
# 14 3 1  2.01842371
# 15 4 1 -0.06271410
# 21 0 2  1.30486965
# 22 1 2  2.28664539
# 23 2 2 -1.38886070
# 24 3 2 -0.27878877
# 25 4 2 -0.13332134
# 31 0 3  0.63595040
# 32 1 3 -0.28425292
# 33 2 3 -2.65645542
# 34 3 3 -2.44046693
# 35 4 3  1.32011335
# 41 0 4 -0.30663859
# 42 1 4 -1.78130843
# 43 2 4 -0.17191736
# 44 3 4  1.21467470
# 45 4 4  1.89519346
于 2013-03-22T13:26:23.887 に答える