私の研究これまで
ほとんどの記事はclass
とtypeof
の違いを議論するが、私はmode
、storage.mode
、とtypeof
間の違いにあまり見つかっていません。mode、storage.mode、typeof of Rの違いは何ですか?
私は、mode
,storage.mode
、およびtypeof
がより類似しており、class
がより異なっています。私は前者の2つをtypeof
と呼びますが、彼らは特定のタイプを少し違ったやり方で扱っていることを理解しています。私が知りたいのは、その背後にある考え方です。
最小限の作業例
library(data.table)
my_vector_boolean <- c(TRUE, FALSE, T, F)
my_vector_integer <- c(1L, 2L, 3L)
my_vector_character <- c("a", "b", "abc")
my_vector_factor <- as.factor(c("a", "b", "c"))
my_list <- list(a=1, b=2L, c="c")
my_matrix <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,
dimnames = list(c("row1", "row2"), c("col1", "col2", "col3")))
my_dataframe <- data.frame(1, 1L:10L, sample(3, 10, replace = TRUE))
my_datatable <- data.table(1, 1L:10L, sample(3, 10, replace = TRUE))
datatypeslist <- list(
my_vector_boolean = my_vector_boolean,
my_vector_integer = my_vector_integer,
my_vector_character = my_vector_character,
my_vector_factor = my_vector_factor,
my_list = my_list,
my_matrix = my_matrix,
my_dataframe = my_dataframe,
my_datatable = my_datatable
)
multi.sapply <- function(...) {
arglist <- match.call(expand.dots = FALSE)$...
var.names <- sapply(arglist, deparse)
has.name <- (names(arglist) != "")
var.names[has.name] <- names(arglist)[has.name]
arglist <- lapply(arglist, eval.parent, n = 2)
x <- arglist[[1]]
arglist[[1]] <- NULL
result <- sapply(arglist, function (FUN, x) sapply(x, FUN), x)
colnames(result) <- var.names[-1]
return(result)
}
multi.sapply(datatypeslist, typeof, storage.mode, mode, class)
私は私がないを探しています答え、どのような
を探しています: "異なっmode
とstorage.mode
ハンドルsingle
どのような種類の私はですのためにloking: "typeof
は、基本的なCの実装であり、mode
はデータ型であり、storage.mode
はそのデータ型です... "
さらに、「モード」と「タイプ」という用語の差別化に感謝しますマニュアルとチュートリアル。たとえば、typeof
はデータオブジェクトのモードを返すと言われています。これは私にとっては混乱しているようです。
質問が明確であることを願っています。ダウン投票や投票の投票の前に、明確ではなかったことを教えてください。
まあ、[ハドレーはこれを言う](http://adv-r.had.co.nz/OO-essentials.html):「あなたは 'モード()'と 'ストレージの聞いたことがあります。 mode() 'これらは 'typeof()'、**によって返された名前のエイリアスなので、これらの関数を無視することをお勧めします。S互換性**のためだけに存在します。 "あなたの投稿の最後のビットを正しく理解すれば、あなたが望む答えの、右?編集:また、おそらくRのドキュメントが役立ちます:[ここ](http://stat.ethz.ch/R-manual/R-devel/doc/manual/R-lang.html#Objects ) – Laterow
@ Laterow:はい、私はそれが大いに役立っていると思います。あなたがリンクしているRドキュメントも私に読まれましたが、質問では答えられませんでした。 – Make42
@Laterow:チュートリアルで「タイプ」と「モード」の違いを説明することもできます(質問を参照してください)。 – Make42