سؤال

أنا أبحث عن وظيفة لتفريغ المتغيرات والأشياء، مع تفسيرات قابلة للقراءة البشرية لأنواع البيانات الخاصة بهم. على سبيل المثال، في 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 لاسترداد المعلومات التي تريدها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top