2016-01-19 91 views
-3

第一查询:分割的字符串,并提取各个元素

文件名是测试其为数据帧和矢量只有一个像斯泰西-A,马克-B,吉赛尔-C含有名称。 我想分裂一个名字让我们说斯泰西-A和我有超过50000 +行。 所以我想要一个包含Stacy的矢量和一个包含A的矢量,即分割后的字符。我为此运行了一个循环。由于循环返回列表,我用这个。

for(i in 1:nrow(TEST)){TEST[i,"Name"]<-strsplit(TEST[i,"Name"],"-")[[1]][1] 
    TEST[i,"Character"]<-strsplit(TEST[i,"Name"],"-")[[1]][2]} 

需要很多时间。 有人可以让我知道如何使用sapply或任何应用函数,但我想在数据框中而不是列表或矩阵。

第二个查询:

测试是我的数据库,我想的价值观和我有同样命名为用户从中我想拉值一个文件。

我想把查找像excel从另一个文件中选择值。我的循环中有两个条件。 我找到匹配的值,然后只有我选择它,如果有重复我只选择一个。我用这个循环。它需要3个小时。我有我的用户文件中的数据框和300000多行我想要的值。

for (i in 1:nrow(Test)){if(Test[i,"Item_Cd"] %in% User_item_no) 
{item_cd_found<-Test[i,"Item_Cd"]Test[i,"Order.Status"]<-as.character(User[which(User$Item.No.==item_cd_found),"Name"])[1]} 
+2

投票关闭,它缺乏一个[MCVE]参见[这个线程(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example )来改善你的问题。 – Tensibai

回答

1

这可能是一个黑暗中没有一个可重复的例子,但你可能会在这样的事情之后。首先,我将每个元素分割为-,并取出第一个和第二个元素并将其分配给相应的变量。

xy <- c("Svarog-A", "Knez-B", "Petovia-C", "Svarun-D", "Hotimir-D") 

splitxy <- strsplit(xy, "-") 

xy.names <- sapply(splitxy, "[", 1) 
xy.letters <- sapply(splitxy, "[", 2) 

> xy.names 
[1] "Svarog" "Knez" "Petovia" "Svarun" "Hotimir" 
> xy.letters 
[1] "A" "B" "C" "D" "D" 
+0

并建立data.frame:'data.frame(Name = xy.names,Letter = xy.letters)' – sdgfsdh

+0

感谢罗马它的工作。我得到了我的第一个查询的答案 – iamashish

+0

@AshishPatodia我建议你打开第二个问题的第二个问题。如果可能的话,不要忘记提供[可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)和期望的输出。 –