ما هو ما يعادل var_dump () في ص؟
-
19-09-2019 - |
سؤال
أنا أبحث عن وظيفة لتفريغ المتغيرات والأشياء، مع تفسيرات قابلة للقراءة البشرية لأنواع البيانات الخاصة بهم. على سبيل المثال، في PHP var_dump
هل هذا.
$foo = array();
$foo[] = 1;
$foo['moo'] = 2;
var_dump($foo);
عائدات:
array(2) {
[0]=>
int(1)
["moo"]=>
int(2)
}
المحلول
بعض الأمثلة:
foo <- data.frame(1:12,12:1)
foo ## What's inside?
dput(foo) ## Details on the structure, names, and class
str(foo) ## Gives you a quick look at the variable structure
الإخراج على الشاشة:
foo <- data.frame(1:12,12:1)
foo
X1.12 X12.1
1 1 12
2 2 11
3 3 10
4 4 9
5 5 8
6 6 7
7 7 6
8 8 5
9 9 4
10 10 3
11 11 2
12 12 1
> dput(foo)
structure(list(X1.12 = 1:12, X12.1 = c(12L, 11L, 10L, 9L, 8L,
7L, 6L, 5L, 4L, 3L, 2L, 1L)), .Names = c("X1.12", "X12.1"), row.names = c(NA,
-12L), class = "data.frame")
> str(foo)
'data.frame': 12 obs. of 2 variables:
$ X1.12: int 1 2 3 4 5 6 7 8 9 10 ...
$ X12.1: int 12 11 10 9 8 7 6 5 4 3 ...
نصائح أخرى
تفحص ال dump
أمر:
> x <- c(8,6,7,5,3,0,9)
> dump("x", "")
x <-
c(8, 6, 7, 5, 3, 0, 9)
أعتقد أنك تريد "شارع" الذي يخبرك بنية كائن ص.
محاولة deparse
, ، علي سبيل المثال:
> deparse(1:3)
[1] "1:3"
> deparse(c(5,6))
[1] "c(5, 6)"
> deparse(data.frame(name=c('jack', 'mike')))
[1] "structure(list(name = structure(1:2, .Label = c(\"jack\", \"mike\""
[2] "), class = \"factor\")), .Names = \"name\", row.names = c(NA, -2L"
[3] "), class = \"data.frame\")"
انها أفضل من dump
, ، لان dump
يتطلب متغير اسم, ، ويخلق ملف تفريغ.
إذا كنت لا ترغب في طباعةها مباشرة، ولكن على سبيل المثال وضعها داخل سلسلة مع sprintf(fmt, ...)
أو متغير لاستخدامها لاحقا، ثم إنه أفضل من dput
, ، لان dput
يطبع مباشرة.
ربما تكون الطباعة هي أسهل وظيفة لاستخدامها خارج الصندوق؛ توفر معظم الفصول طباعة مخصصة. قد لا يطلقون على وجه التحديد النوع، لكنهم غالبا ما يقدمون نموذجا مميزا.
خلاف ذلك، قد تكون قادرا على كتابة رمز مخصص لاستخدام وظائف الفئة و DataType لاسترداد المعلومات التي تريدها.