如何在R

时间:2019-05-03 02:19:29

标签: dataframe vector split

我试图将一个数据帧中的一个数据列拆分为添加到现有数据帧上的多个列,或者拆分我创建的原子向量,以使用条件识别单个变量。

我使用的是在巴西创建的数据集,因此它已经存在许多我已更正的格式问题。例如逗号而不是小数,调整日期/时间格式等。我现在遇到的最大问题是数据框中的最后一列,其中的行包含1-6个结果。

这是到目前为止,我收到的错误: CF_IDs $ IDs中的错误:$运算符对原子向量无效

CF_IDs <- NewSet1$IDs[ ((NewSet1$Behaviour == "DP" | NewSet1$Behaviour == "P") & NewSet1$Interaction == "S") ]
str_split_fixed[CF_IDs$IDs, ",", 6]

现在我的数据框看起来像这样:

Behaviour|Interaction|IDs
P        |S          |15L,33L,38L
D        |N          |43L,17L
D        |N          |9L,10L

我正在尝试拆分ID列,同时也不会造成NA问题。我想将它们单独分开,以便从52中找出每个唯一变量,而不是从403中找出当前的唯一变量。

* Edit:将最后一列变成多行也可以,但是我不知道该怎么做。看起来可能像这样:

Behaviour|Interaction|IDs
P        |S          |15L
P        |S          |33L
P        |S          |38L
D        |N          |43L
D        |N          |17L
D        |N          |9L
D        |N          |10L

1 个答案:

答案 0 :(得分:0)

我想出了办法,并想发表,以防其他人偶然发现。

#Separate IDs column into individual rows with corresponding Behavior and Interaction variables
NewSet1_IDs <- separate_rows(NewSet1, IDs)
#Remove rows caused by blank space at the end of IDs in original data set
NewSet1_IDs <- NewSet1_IDs[!(NewSet1_IDs$IDs == ""),]

这给出了预期的结果。