基于现有变量在R中创建新变量

基于现有变量在R中创建新变量,r,R,我有一个关于R的新问题——我正在教自己如何在心理学学士学位论文中使用它,所以如果我的问题真的很幼稚,请容忍我 现在,我正试图在现有变量的基础上创建一个新变量。现有的有4种不同的表达式:T1、T2、T3和T4。它们可能看起来像这样: subject scenario 1 T1 2 T3 3 T3 4 T2 5 T2 6 T4 subject

我有一个关于R的新问题——我正在教自己如何在心理学学士学位论文中使用它,所以如果我的问题真的很幼稚,请容忍我

现在,我正试图在现有变量的基础上创建一个新变量。现有的有4种不同的表达式:T1、T2、T3和T4。它们可能看起来像这样:

subject       scenario
1             T1
2             T3
3             T3
4             T2
5             T2
6             T4
subject      scenario    personal force
1            T1          personal
2            T3          impersonal
3            T3          impersonal
4            T2          personal
5            T2          personal
6            T4          impersonal
我试图创建的新变量应该给出以下值:对于
T1
T2
来说,新变量应该是
personal
,对于
T3
T4
来说,它应该是
非个人的
。 因此,输出数据应如下所示:

subject       scenario
1             T1
2             T3
3             T3
4             T2
5             T2
6             T4
subject      scenario    personal force
1            T1          personal
2            T3          impersonal
3            T3          impersonal
4            T2          personal
5            T2          personal
6            T4          impersonal
我可以创建什么代码来执行此操作? 任何帮助都将不胜感激。谢谢!:)

一个选项可以是:

#Code
df$NewVar <- ifelse(df$scenario %in% c('T1','T2'),'personal','impersonal')
两种情况下的输出:

df
  subject scenario     NewVar
1       1       T1   personal
2       2       T3 impersonal
3       3       T3 impersonal
4       4       T2   personal
5       5       T2   personal
6       6       T4 impersonal

也可以使用
dplyr
mutate()
并传递
ifelse()
来完成,但您必须安装该软件包并了解其功能。由于您是
R
的初学者,您可以先从
base R
开始,然后升级到
dplyr
样式。

另一种方法是使用逻辑子集创建新列

df$personal_force <- c('impersonal', 'personal')[df$scenario %in% c('T1', 'T2') + 1]
df

#  subject scenario personal_force
#1       1       T1       personal
#2       2       T3     impersonal
#3       3       T3     impersonal
#4       4       T2       personal
#5       5       T2       personal
#6       6       T4     impersonal

df$personal\u force TRY:pd%>%mutate(personal\u force=ifelse(场景%in%c('T1','T2'),'personal','impersonal'))其中'pd'是您的数据框架谢谢!你的第一次推荐很有魅力。@carolinships太棒了!继续学习掌握
R
:)如果你有任何与某个项目相关的陷阱,请告诉我。我经常教授定制的R编程课程来解决关键问题。如果您在任何时候感兴趣,请告诉我:)