اختيار المتغيرات استنادا إلى اسم (التعبير العادي البسيط)

StackOverflow https://stackoverflow.com/questions/1402634

  •  05-07-2019
  •  | 
  •  

سؤال

وأود أن تدرج أسماء المتغيرات التي تتضمن ما يجب أن أقوم به معهم. أتخيل dataframe "مسح".

library(Rlab) # Needed for rbern() function.
survey <- data.frame(cbind(  
id = seq(1:10),  
likert_this = sample(seq(1:7),10, replace=T),  
likert_that = sample(seq(1:7), 10, replace=T),  
dim_bern_varx = rbern(10, 0.6),  
disc_1 = sample(letters[1:5],10,replace=T)))

والآن أود أن تفعل أشياء معينة مع كل المتغيرات التي تحتوي على يكرت ، وأشياء أخرى مع المتغيرات التي تحتوي على برن الخ.

وكيف يمكن القيام بذلك في R؟

هل كانت مفيدة؟

المحلول

ويمكنك استخدام grep() مع colnames():

survey[,grep("bern", colnames(survey))]

نصائح أخرى

إذا كان لديك مجموعة من الأسماء التي ترغب في الاستيلاء يمكنك أيضا استخدام مباراة. ربما كنت غالبا ما تحتاج المتغيرات "نبض"، "ممارسة"، "ارتفاع"، "الوزن" و "العمر"، لكنها تظهر أحيانا في أماكن مختلفة أو مع المتغيرات المضافة الأخرى. يمكنك حفظ متجه من الأسماء الشائعة ثم مطابقتها ضد dataframe ولها مدافع جديد من مجرد الأعمدة القياسية في النظام الذي تريد.

basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]

وو"معاملات" حزمة تسمح بعض تركيب بيرل مثل:

library(operators)

survey[, colnames(survey) %~% "bern"]

أو

subset(survey, select = colnames(survey) %~% "bern")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top