8

次の問題が発生します。

library(gWidgets)
options(guiToolkit = "RGtk2")

aa <- c(1,2,3)
bb <- c(4,5,6)
cc <- cbind(aa,bb)
cc <-as.data.frame(cc)

t1 <- gtable(cc, container=TRUE)

t1 の内容を次のように更新したい:

dd <- c(7,8,9)
dd <- as.data.frame(dd)

しかし、私が走るとき

t1[] <- dd

私は受け取ります:Can't replace with fewer columns

アポストロス

4

3 に答える 3

3

ジョンの答えを拡張するために、ここに例を示します。

#Data
cc <- data.frame(aa = 1:3, bb = 4:6)
dd <- data.frame(X = 7:9)

#Wigdets
win <- gwindow()
grp <- ggroup(container = win)
t1 <- gtable(cc, container = grp)

#Refresh widget
delete(grp, t1)
t1 <- gtable(dd, container = grp)

gWidgetstcltk質問のサンプル コードは;の下で正常に動作することに注意してください。これは純粋に GTK の問題です。

于 2011-07-04T12:33:45.617 に答える
2

gtkウィジェットを使用すると、構築時に列のタイプを選択できるため、gtableを使用すると、列の数を減らしたり、列のタイプを変更したりすることはできません。本当にこれを実行したい場合は、ウィジェットをggroupコンテナーに入れてから、新しいウィジェットを削除して追加します。

于 2011-07-03T19:57:26.403 に答える
0

コンテンツを完全に変更するのではなく、更新するだけの場合、次のようなもので非常に素晴らしい経験をしました:

win <- gtable(data.frame(a=rnorm(100),b=runif(100)),container=T)
win[1,1] <- 5
win[1:10,2] <- 6
win[seq(dim(win)[1]),seq(dim(win)[2])] <- win[seq(dim(win)[1]),seq(dim(win)[2])] +1 

完全な「リフレッシュ」は次のようになります。

win <- gtable(data.frame(a=rnorm(100),b=runif(100),d=FALSE),container=T)
于 2013-06-23T14:53:04.660 に答える