我正在尝试对来自不同教师的多个课程的教学评估进行一些分析。每个学生的评估都存储为.csv文件(尽管它们是以制表符分隔的)。
我将csv文件合并到一个数据框中的常用方法不会起作用,因为每个文件的列数不同,并且列名中包含教师的名称。因此,名称和维度之间存在不匹配。我跳过第一行并将标题设置为FALSE,但不同的列数仍然会引发错误。
因此,我将每个.csv文件读入其自己的数据框,其名称与文件名相同:
for(i in file_names){
assign(i, read.csv(i, sep="\t", fileEncoding = "utf-16"))
}
有没有办法在循环中使用dplyr来跨越所有数据帧的名称中的特定文本的列(第一轮50个数据帧)?
具体来说,我想提取Created.At
变量和包含..."Over.all.rating.for.teacher"
的变量。
编辑以添加样本数据:
Data1 <- dput(Data1)
structure(list(Created.At = structure(c(3L, 4L, 5L, 6L, 7L, 8L,
9L, 1L, 2L, 10L), .Label = c("2016/01/19 10:16:08 PM", "2016/01/19 11:08:58 PM",
"2016/01/19 3:36:24 PM", "2016/01/19 4:06:32 PM", "2016/01/19 4:08:52 PM",
"2016/01/19 4:40:26 PM", "2016/01/19 6:38:57 PM", "2016/01/19 8:18:20 PM",
"2016/01/19 8:58:38 PM", "2016/01/20 8:16:28 PM"), class = "factor"),
Please.rate.teacher..John.Doe...Skills.of.interaction.and.rapport.with.learners = c(4L,
5L, 4L, NA, 4L, 5L, 5L, 4L, 4L, 3L), Please.rate.teacher..John.Doe...Clearly.communicated.goals.outcomes.for.the.session = c(4L,
5L, 4L, NA, 4L, 5L, 4L, 5L, 4L, 4L), Please.rate.teacher..John.Doe...Knowledge.of.subject.was.clearly.demonstrated = c(5L,
5L, 4L, NA, 4L, 5L, 5L, 5L, 4L, 3L), Please.rate.teacher..John.Doe...Conveys.the.significance.of.the.information = c(4L,
5L, 3L, NA, 4L, 5L, 5L, 4L, 4L, 3L), Please.rate.teacher..John.Doe...Class.preparation.materials....referred.to.or.used = c(NA,
NA, 4L, 5L, 4L, 5L, 5L, NA, 4L, 2L), Please.rate.teacher..John.Doe...Teaching.methods.facilitated.achievement.of.goals.for.session = c(4L,
5L, 4L, NA, 4L, 5L, 5L, 5L, 5L, 3L), Please.rate.teacher..John.Doe...Uses.time.effectively = c(5L,
5L, 4L, NA, 4L, 4L, 4L, 5L, 3L, 3L), Please.rate.teacher..John.Doe...Compared.to.other.teachers..this.one.is... = c(4L,
5L, 4L, NA, 4L, 5L, 5L, 4L, 4L, 4L), Please.rate.teacher..John.Doe...Over.all.rating.for.teacher = c(4L,
5L, 4L, 5L, 4L, 5L, 5L, 4L, 4L, 4L), Please.rate.teacher..Jane.Doe....Skills.of.interaction.and.rapport.with.learners = c(4L,
4L, 4L, 5L, 4L, 5L, 5L, 4L, 5L, 3L), Please.rate.teacher..Jane.Doe...Clearly.communicated.goals.outcomes.for.the.session = c(4L,
5L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 3L), Please.rate.teacher..Jane.Doe....Knowledge.of.subject.was.clearly.demonstrated = c(4L,
4L, 3L, 4L, 4L, 5L, 5L, 4L, 5L, 4L), Please.rate.teacher..Jane.Doe....Conveys.the.significance.of.the.information = c(4L,
4L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 3L), Please.rate.teacher..Jane.Doe....Class.preparation.materials....referred.to.or.used = c(NA,
NA, 4L, NA, 4L, 5L, 5L, NA, 5L, 2L), Please.rate.teacher..Jane.Doe....Teaching.methods.facilitated.achievement.of.goals.for.session = c(4L,
5L, 4L, 5L, 4L, 5L, 4L, 5L, 5L, 3L), Please.rate.teacher..Jane.Doe....Uses.time.effectively = c(4L,
5L, 4L, 5L, 4L, 5L, 5L, 5L, 5L, 3L), Please.rate.teacher..Jane.Doe...Compared.to.other.teachers..this.one.is... = c(4L,
4L, 4L, 4L, 4L, 5L, 4L, 4L, 4L, 3L), Please.rate.teacher..Jane.Doe....Over.all.rating.for.teacher = c(4L,
4L, 4L, 4L, 4L, 5L, 5L, 4L, 4L, 3L), Please.rate.teacher..Sue.Smith....Skills.of.interaction.and.rapport.with.learners = c(4L,
4L, 4L, 5L, 4L, 4L, 5L, 4L, 4L, 2L), Please.rate.teacher..Sue.Smith....Clearly.communicated.goals.outcomes.for.the.session = c(4L,
4L, 4L, 5L, 4L, 5L, 5L, 5L, 4L, 2L), Please.rate.teacher..Sue.Smith....Knowledge.of.subject.was.clearly.demonstrated = c(4L,
3L, 4L, 5L, 4L, NA, 5L, 4L, 4L, 2L), Please.rate.teacher..Sue.Smith....Conveys.the.significance.of.the.information = c(3L,
4L, 4L, 4L, 4L, NA, 5L, 4L, 3L, 2L), Please.rate.teacher..Sue.Smith....Class.preparation.materials....referred.to.or.used = c(NA,
NA, 4L, 4L, 4L, NA, 5L, NA, 4L, 2L), Please.rate.teacher..Sue.Smith....Teaching.methods.facilitated.achievement.of.goals.for.session = c(4L,
4L, 4L, 5L, 4L, NA, 5L, 4L, 5L, 2L), Please.rate.teacher..Sue.Smith....Uses.time.effectively = c(3L,
4L, 4L, 5L, 4L, NA, 5L, 5L, 4L, 2L), Please.rate.teacher..Sue.Smith....Compared.to.other.teachers..this.one.is... = c(4L,
3L, 4L, 5L, 4L, 4L, 5L, 4L, 4L, 3L), Please.rate.teacher..Sue.Smith....Over.all.rating.for.teacher = c(NA,
3L, 4L, 5L, 4L, 5L, 5L, 4L, 4L, 2L), Please.rate.the.following.....I.feel.that.I.achieved.the.learning.objectives.for.today.s.sessions = c(4L,
5L, 4L, 5L, 4L, 5L, 5L, 5L, 5L, 4L), Please.rate.the.following.....The.session.promoted.ideas.for.dissemination.of.concepts.in.my.home.department.or.other.areas = c(3L,
5L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 4L), Please.rate.the.following.....I.feel.prepared.to.disseminate.these.ideas.concepts.in.my.home.department = c(3L,
4L, 4L, 5L, 3L, 5L, 3L, 4L, 4L, 2L), Please.rate.the.following.....I.can.see.myself.making.use.of.handouts.and.follow.up.material.references.that.were.provided.in.class.today = c(NA,
4L, 4L, 4L, 3L, 5L, 3L, NA, 5L, 2L), Overall.I.found.this.session.to.be... = c(4L,
5L, 4L, 5L, 4L, 5L, 5L, 5L, 5L, 3L)), .Names = c("Created.At",
"Please.rate.teacher..John.Doe...Skills.of.interaction.and.rapport.with.learners",
"Please.rate.teacher..John.Doe...Clearly.communicated.goals.outcomes.for.the.session",
"Please.rate.teacher..John.Doe...Knowledge.of.subject.was.clearly.demonstrated",
"Please.rate.teacher..John.Doe...Conveys.the.significance.of.the.information",
"Please.rate.teacher..John.Doe...Class.preparation.materials....referred.to.or.used",
"Please.rate.teacher..John.Doe...Teaching.methods.facilitated.achievement.of.goals.for.session",
"Please.rate.teacher..John.Doe...Uses.time.effectively", "Please.rate.teacher..John.Doe...Compared.to.other.teachers..this.one.is...",
"Please.rate.teacher..John.Doe...Over.all.rating.for.teacher",
"Please.rate.teacher..Jane.Doe....Skills.of.interaction.and.rapport.with.learners",
"Please.rate.teacher..Jane.Doe...Clearly.communicated.goals.outcomes.for.the.session",
"Please.rate.teacher..Jane.Doe....Knowledge.of.subject.was.clearly.demonstrated",
"Please.rate.teacher..Jane.Doe....Conveys.the.significance.of.the.information",
"Please.rate.teacher..Jane.Doe....Class.preparation.materials....referred.to.or.used",
"Please.rate.teacher..Jane.Doe....Teaching.methods.facilitated.achievement.of.goals.for.session",
"Please.rate.teacher..Jane.Doe....Uses.time.effectively", "Please.rate.teacher..Jane.Doe...Compared.to.other.teachers..this.one.is...",
"Please.rate.teacher..Jane.Doe....Over.all.rating.for.teacher",
"Please.rate.teacher..Sue.Smith....Skills.of.interaction.and.rapport.with.learners",
"Please.rate.teacher..Sue.Smith....Clearly.communicated.goals.outcomes.for.the.session",
"Please.rate.teacher..Sue.Smith....Knowledge.of.subject.was.clearly.demonstrated",
"Please.rate.teacher..Sue.Smith....Conveys.the.significance.of.the.information",
"Please.rate.teacher..Sue.Smith....Class.preparation.materials....referred.to.or.used",
"Please.rate.teacher..Sue.Smith....Teaching.methods.facilitated.achievement.of.goals.for.session",
"Please.rate.teacher..Sue.Smith....Uses.time.effectively", "Please.rate.teacher..Sue.Smith....Compared.to.other.teachers..this.one.is...",
"Please.rate.teacher..Sue.Smith....Over.all.rating.for.teacher",
"Please.rate.the.following.....I.feel.that.I.achieved.the.learning.objectives.for.today.s.sessions",
"Please.rate.the.following.....The.session.promoted.ideas.for.dissemination.of.concepts.in.my.home.department.or.other.areas",
"Please.rate.the.following.....I.feel.prepared.to.disseminate.these.ideas.concepts.in.my.home.department",
"Please.rate.the.following.....I.can.see.myself.making.use.of.handouts.and.follow.up.material.references.that.were.provided.in.class.today",
"Overall.I.found.this.session.to.be..."), class = "data.frame", row.names = c(NA,
-10L))
Data2 <- dput(Data2)
structure(list(Created.At = structure(c(1L, 2L, 2L, 3L, 4L, 5L,
6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L), .Label = c("2016/09/13 4:28:24 PM",
"2016/09/13 4:29:11 PM", "2016/09/13 4:29:23 PM", "2016/09/13 4:29:29 PM",
"2016/09/13 4:29:34 PM", "2016/09/13 4:29:37 PM", "2016/09/13 4:29:40 PM",
"2016/09/13 4:29:41 PM", "2016/09/13 4:29:49 PM", "2016/09/13 4:30:19 PM",
"2016/09/13 4:32:42 PM", "2016/09/13 4:35:50 PM", "2016/09/13 4:41:46 PM",
"2016/09/13 9:41:27 PM", "2016/09/26 10:53:28 PM", "2016/10/11 10:30:34 PM"
), class = "factor"), Please.rate.teacher..Foo.Bar...Skills.of.interaction.and.rapport.with.learners = c(5L,
5L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 5L, 5L, 5L, 5L, 4L, 5L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Clearly.communicated.goals.outcomes.for.the.session = c(5L,
5L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 5L, 4L, 4L, 5L, 4L, 4L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Knowledge.of.subject.was.clearly.demonstrated = c(5L,
3L, 4L, 4L, 5L, 5L, 4L, 3L, 4L, 5L, 4L, 4L, 4L, 5L, 4L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Conveys.the.significance.of.the.information = c(5L,
5L, 4L, 4L, 4L, 5L, 5L, 3L, 4L, 5L, 4L, 4L, 5L, 4L, 4L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Class.preparation.materials....referred.to.or.used = c(5L,
4L, 4L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 5L, 4L, 5L, 4L, 5L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Teaching.methods.facilitated.achievement.of.goals.for.session = c(5L,
5L, 5L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 5L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Uses.time.effectively = c(5L,
5L, 4L, 4L, 5L, 5L, 5L, 5L, 4L, 5L, 5L, 5L, 4L, 5L, 5L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Compared.to.other.teachers..this.one.is... = c(5L,
5L, 4L, 4L, 4L, 5L, 5L, 4L, 4L, 5L, 4L, 4L, 5L, 4L, 4L, 5L, 5L
), Please.rate.teacher..Foo.Bar...Over.all.rating.for.teacher = c(5L,
4L, 4L, 4L, 4L, 5L, 5L, 4L, 5L, 5L, 5L, 4L, 5L, 5L, 5L, 5L, 5L
), Please.rate.the.following.....I.feel.that.I.achieved.the.learning.objectives.for.today.s.sessions = c(4L,
4L, NA, 4L, 5L, 5L, 4L, 4L, 5L, 5L, 5L, 4L, 4L, 5L, 5L, 4L, 4L
), Please.rate.the.following.....The.session.promoted.ideas.for.dissemination.of.concepts.in.my.home.department.or.other.areas = c(5L,
4L, NA, NA, 4L, 5L, 4L, 4L, 5L, 4L, 5L, 4L, 4L, 4L, 5L, 5L, 5L
), Please.rate.the.following.....I.feel.prepared.to.disseminate.these.ideas.concepts.in.my.home.department = c(4L,
3L, NA, 4L, 4L, 5L, 4L, 3L, 4L, 4L, 5L, 4L, 3L, 4L, 5L, 4L, 4L
), Please.rate.the.following.....I.can.see.myself.making.use.of.handouts.and.follow.up.material.references.that.were.provided.in.class.today = c(5L,
4L, NA, NA, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 5L, 5L, 5L, 5L
), Overall.I.found.this.session.to.be... = c(5L, 4L, 4L, 3L,
4L, 5L, 4L, 4L, 4L, 4L, 5L, 4L, 4L, 5L, 5L, 5L, 5L)), .Names = c("Created.At",
"Please.rate.teacher..Foo.Bar...Skills.of.interaction.and.rapport.with.learners",
"Please.rate.teacher..Foo.Bar...Clearly.communicated.goals.outcomes.for.the.session",
"Please.rate.teacher..Foo.Bar...Knowledge.of.subject.was.clearly.demonstrated",
"Please.rate.teacher..Foo.Bar...Conveys.the.significance.of.the.information",
"Please.rate.teacher..Foo.Bar...Class.preparation.materials....referred.to.or.used",
"Please.rate.teacher..Foo.Bar...Teaching.methods.facilitated.achievement.of.goals.for.session",
"Please.rate.teacher..Foo.Bar...Uses.time.effectively", "Please.rate.teacher..Foo.Bar...Compared.to.other.teachers..this.one.is...",
"Please.rate.teacher..Foo.Bar...Over.all.rating.for.teacher",
"Please.rate.the.following.....I.feel.that.I.achieved.the.learning.objectives.for.today.s.sessions",
"Please.rate.the.following.....The.session.promoted.ideas.for.dissemination.of.concepts.in.my.home.department.or.other.areas",
"Please.rate.the.following.....I.feel.prepared.to.disseminate.these.ideas.concepts.in.my.home.department",
"Please.rate.the.following.....I.can.see.myself.making.use.of.handouts.and.follow.up.material.references.that.were.provided.in.class.today",
"Overall.I.found.this.session.to.be..."), class = "data.frame", row.names = c(NA,
-17L))
Data1在会话中有3名教师,Data2只有一名教师。我认为要理解数据,并与其他人口统计信息相匹配,我需要为教师姓名&#34;创建一个变量。
编辑以显示所需的输出:
Created.At Rating Var
1 2016/01/19 3:36:24 PM 4 Please rate teacher: John Doe | Over all rating for teacher
2 2016/01/19 4:06:32 PM 5 Please rate teacher: John Doe | Over all rating for teacher
3 2016/01/19 4:08:52 PM 4 Please rate teacher: John Doe | Over all rating for teacher
4 2016/01/19 4:40:26 PM 5 Please rate teacher: John Doe | Over all rating for teacher
5 2016/01/19 6:38:57 PM 4 Please rate teacher: John Doe | Over all rating for teacher
6 2016/01/19 8:18:20 PM 5 Please rate teacher: John Doe | Over all rating for teacher
7 2016/01/19 8:58:38 PM 5 Please rate teacher: John Doe | Over all rating for teacher
8 2016/01/19 10:16:08 PM 4 Please rate teacher: John Doe | Over all rating for teacher
9 2016/01/19 11:08:58 PM 4 Please rate teacher: John Doe | Over all rating for teacher
10 2016/01/20 8:16:28 PM 4 Please rate teacher: John Doe | Over all rating for teacher
11 2016/01/19 3:36:24 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
12 2016/01/19 4:06:32 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
13 2016/01/19 4:08:52 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
14 2016/01/19 4:40:26 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
15 2016/01/19 6:38:57 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
16 2016/01/19 8:18:20 PM 5 Please rate teacher: Jane Doe | Over all rating for teacher
17 2016/01/19 8:58:38 PM 5 Please rate teacher: Jane Doe | Over all rating for teacher
18 2016/01/19 10:16:08 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
19 2016/01/19 11:08:58 PM 4 Please rate teacher: Jane Doe | Over all rating for teacher
20 2016/01/20 8:16:28 PM 3 Please rate teacher: Jane Doe | Over all rating for teacher
21 2016/01/19 3:36:24 PM NA Please rate teacher: Sue Smith | Over all rating for teacher
22 2016/01/19 4:06:32 PM 3 Please rate teacher: Sue Smith | Over all rating for teacher
23 2016/01/19 4:08:52 PM 4 Please rate teacher: Sue Smith | Over all rating for teacher
24 2016/01/19 4:40:26 PM 5 Please rate teacher: Sue Smith | Over all rating for teacher
25 2016/01/19 6:38:57 PM 4 Please rate teacher: Sue Smith | Over all rating for teacher
26 2016/01/19 8:18:20 PM 5 Please rate teacher: Sue Smith | Over all rating for teacher
27 2016/01/19 8:58:38 PM 5 Please rate teacher: Sue Smith | Over all rating for teacher
28 2016/01/19 10:16:08 PM 4 Please rate teacher: Sue Smith | Over all rating for teacher
29 2016/01/19 11:08:58 PM 4 Please rate teacher: Sue Smith | Over all rating for teacher
30 2016/01/20 8:16:28 PM 2 Please rate teacher: Sue Smith | Over all rating for teacher
31 2016/09/13 4:28:24 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
32 2016/09/13 4:29:11 PM 4 Please rate teacher: Foo Bar | Over all rating for teacher
33 2016/09/13 4:29:11 PM 4 Please rate teacher: Foo Bar | Over all rating for teacher
34 2016/09/13 4:29:23 PM 4 Please rate teacher: Foo Bar | Over all rating for teacher
35 2016/09/13 4:29:29 PM 4 Please rate teacher: Foo Bar | Over all rating for teacher
36 2016/09/13 4:29:34 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
37 2016/09/13 4:29:37 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
38 2016/09/13 4:29:40 PM 4 Please rate teacher: Foo Bar | Over all rating for teacher
39 2016/09/13 4:29:41 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
40 2016/09/13 4:29:49 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
41 2016/09/13 4:30:19 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
42 2016/09/13 4:32:42 PM 4 Please rate teacher: Foo Bar | Over all rating for teacher
43 2016/09/13 4:35:50 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
44 2016/09/13 4:41:46 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
45 2016/09/13 9:41:27 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
46 2016/09/26 10:53:28 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
47 2016/10/11 10:30:34 PM 5 Please rate teacher: Foo Bar | Over all rating for teacher
理想会是这样的:
Created.At Overall.Rating Teacher
1 2016/01/19 3:36:24 PM 4 John Doe
2 2016/01/19 4:06:32 PM 5 John Doe
3 2016/01/19 4:08:52 PM 4 John Doe
4 2016/01/19 4:40:26 PM 5 John Doe
5 2016/01/19 6:38:57 PM 4 John Doe
6 2016/01/19 8:18:20 PM 5 John Doe
7 2016/01/19 8:58:38 PM 5 John Doe
8 2016/01/19 10:16:08 PM 4 John Doe
9 2016/01/19 11:08:58 PM 4 John Doe
10 2016/01/20 8:16:28 PM 4 John Doe
11 2016/01/19 3:36:24 PM 4 Jane Doe
12 2016/01/19 4:06:32 PM 4 Jane Doe
13 2016/01/19 4:08:52 PM 4 Jane Doe
14 2016/01/19 4:40:26 PM 4 Jane Doe
15 2016/01/19 6:38:57 PM 4 Jane Doe
16 2016/01/19 8:18:20 PM 5 Jane Doe
17 2016/01/19 8:58:38 PM 5 Jane Doe
18 2016/01/19 10:16:08 PM 4 Jane Doe
19 2016/01/19 11:08:58 PM 4 Jane Doe
20 2016/01/20 8:16:28 PM 3 Jane Doe
21 2016/01/19 3:36:24 PM NA Sue Smith
22 2016/01/19 4:06:32 PM 3 Sue Smith
23 2016/01/19 4:08:52 PM 4 Sue Smith
24 2016/01/19 4:40:26 PM 5 Sue Smith
25 2016/01/19 6:38:57 PM 4 Sue Smith
26 2016/01/19 8:18:20 PM 5 Sue Smith
27 2016/01/19 8:58:38 PM 5 Sue Smith
28 2016/01/19 10:16:08 PM 4 Sue Smith
29 2016/01/19 11:08:58 PM 4 Sue Smith
30 2016/01/20 8:16:28 PM 2 Sue Smith
31 2016/09/13 4:28:24 PM 5 Foo Bar
32 2016/09/13 4:29:11 PM 4 Foo Bar
33 2016/09/13 4:29:11 PM 4 Foo Bar
34 2016/09/13 4:29:23 PM 4 Foo Bar
35 2016/09/13 4:29:29 PM 4 Foo Bar
36 2016/09/13 4:29:34 PM 5 Foo Bar
37 2016/09/13 4:29:37 PM 5 Foo Bar
38 2016/09/13 4:29:40 PM 4 Foo Bar
39 2016/09/13 4:29:41 PM 5 Foo Bar
40 2016/09/13 4:29:49 PM 5 Foo Bar
41 2016/09/13 4:30:19 PM 5 Foo Bar
42 2016/09/13 4:32:42 PM 4 Foo Bar
43 2016/09/13 4:35:50 PM 5 Foo Bar
44 2016/09/13 4:41:46 PM 5 Foo Bar
45 2016/09/13 9:41:27 PM 5 Foo Bar
46 2016/09/26 10:53:28 PM 5 Foo Bar
47 2016/10/11 10:30:34 PM 5 Foo Bar
答案 0 :(得分:1)
根据其他一些答案以及一些挖掘和黑客行为,我尝试了以下内容,它似乎有效:
library(tidyr)
# Read in file path to .csv subject files
Filepath <- dirname(file.choose()) # Choose a file in the directory
# with all the .csv files
# Get a list of all files in the directory
file_names <- dir(Filepath, full.names = TRUE)
# Function to read .csv files listed from directory
read_data <- function(file_names) {
read.csv(file_names, sep = "\t", fileEncoding = "utf-16",
check.names = FALSE, stringsAsFactors = FALSE)
}
# Create a list of data frames from .csv files
data_list <- lapply(file_names, read_data)
# Create a wide data from of all rows from variables
Data_Wide <- lapply(data_list, select, `Created At`,
contains("Over all rating for teacher")) %>%
bind_rows()
# Gather to long data
All_Data <- gather(Data_Wide, Teacher, Overall_Rating, -`Created At`,na.rm = T) %>%
mutate(Teacher = gsub("Please rate teacher: |
[|] Over all rating for teacher|
[(]Scholarship[)]|[(]Teaching Excellence[)]", "", Teacher ),
Teacher = trimws(Teacher), Teacher = tolower(Teacher),
Teacher = tools::toTitleCase(Teacher))
如果有人有更高效或更清洁的方法,请发布:)
答案 1 :(得分:0)
您可以尝试将它们存储在列表中,而不是将每个帧分配到全局变量中。
library(dplyr)
read_data <- function(files) {
read.csv(files) %>%
dplyr::mutate(id_col = files)
}
filenames <- list.files(pattern = ".csv")
mydata <- lapply(files, read_data)
这会为您提供包含所有数据框的列表。然后选择您想要的列
new_data <- lapply(mydata, function(x){
dplyr::select(x, Created.At, id_col,
contains("Over.all.rating.for.teacher"))
return(x)
})
请注意,由于缺乏可重复的示例,我无法对此进行测试,但这应该会让您走上正确的轨道
答案 2 :(得分:0)
这是一个更短的方法。您可以使用s = ''.join(s.split('<tbody>'))
s = ''.join(s.split('</tbody>'))
s = ''.join(s.split('<thead>'))
s = ''.join(s.split('</thead>'))
获取当前环境中的数据框列表。
在下面的示例中,我从两个数据框中选择列ls()
。这类似于你想解决的问题:
name
打印(输出)
library(purrr)
# sample dataframes
df1 <- data.frame(name = c('a','b','c'), val1 = c(1,2,3))
df2 <- data.frame(name = c('d','e','f'), val2 = c(1,2,3),val3 = c(7,8,9))
# create a list of dataframes
list_of_dataframes <- list(df1, df2)
# select columns and create final dataframe
output <- do.call(rbind, map(list_of_dataframes,`[` ,'name')) # instead of 'name' here you can specify a vector c('Created.at','another_column','another_column')
答案 3 :(得分:0)
一种选择可能是使用dplyr::select_at
和dplyr::bind_rows
。 select_at
将仅用于获取包含Over.all.rating.for.teacher
或Created.At
library(dplyr)
res <- Data1 %>%
select_at(vars(c("Created.At"),grep("Over.all.rating.for.teacher",
names(Data1), value = TRUE))) %>%
bind_rows(Data2 %>%
select_at(vars(c("Created.At"),grep("Over.all.rating.for.teacher",
names(Data2), value = TRUE))))
str(res)
'data.frame': 27 obs. of 5 variables:
$ Created.At : chr "2016/01/19 3:36:24 PM" "2016/01/19 4:06:32 PM" "2016/01/19 4:08:52 PM" "2016/01/19 4:40:26 PM" ...
$ Please.rate.teacher..John.Doe...Over.all.rating.for.teacher : int 4 5 4 5 4 5 5 4 4 4 ...
$ Please.rate.teacher..Jane.Doe....Over.all.rating.for.teacher : int 4 4 4 4 4 5 5 4 4 3 ...
$ Please.rate.teacher..Sue.Smith....Over.all.rating.for.teacher: int NA 3 4 5 4 5 5 4 4 2 ...
$ Please.rate.teacher..Foo.Bar...Over.all.rating.for.teacher : int NA NA NA NA NA NA NA NA NA NA ...
注意: OP
共享的数据包含Factor
字符串,因此上述解决方案可能会发出警告。在操作数据帧之前将列转换为character
会更好。